/goal-tracker

Foxbox Week Challenge #1. Goal Tracking app!

Primary LanguageJavaScriptMIT LicenseMIT

Goal Tracker

Netlify Status AppVeyor react styled-components eslint airbnb-style jest coverage MIT License PRs Welcome

Log in with one email and start manage your goals, you can create, update or delete goals, set deadlines, descriptions, search between them, create tasks to each goal and set the goals and tasks as done.

Live Demo: https://goal-tracker-app.netlify.app/

Table of Contents

Screenshots

Click to expand.

Installing

Easy peasy lemon squeezy:

$ yarn

Or:

$ npm install

Was installed and configured the eslint and prettier to keep the code clean and patterned.

Usage

To start the app run:

$ yarn start

Or:

npm run start

Login

Your email is used just to store your data and keep separated from other users in your browser, any kind of ads or newsletter will not be sent to you.

localStorage

The project saves your goals into a localStorage key: a SHA3 hash of your email. Before use this data you need parse the data to a JavaScript object with JSON.parse function. Below you can see fictitious data:

{
  "goals": [
    {
      "id": 1642907083631,
      "title": "Create goal tracker web application",
      "description": "Develop the application to manage goals",
      "deadline": "2022-01-31",
      "tasks": [
        {
          "id": 1642907169966,
          "done": true,
          "title": "Create home page"
        },
        {
          "id": 1642907177520,
          "done": true,
          "title": "Create dashboard page"
        }
      ],
      "done": true,
      "completedAt": "2022-01-23T03:06:18.392Z",
    },
    {
      "id": 1642907124252,
      "title": "To document API routes",
      "description": "Write the API's documentation",
      "deadline": "2022-01-28",
      "tasks": [],
      "done": false,
    }
  ]
}

Running the tests

Jest was the choice to test the app, to run:

$ yarn test

Or:

$ npm run test

Coverage report

You can see the coverage report inside tests/coverage. They are automatically created after the tests run.