Git Product home page Git Product logo

habit-tracker's People

Contributors

artemmrgz avatar

Stargazers

 avatar

Watchers

 avatar

habit-tracker's Issues

Habit Details Screen

User Story

As a user of the habit tracker mobile application, I want to be able to view a full info regarding specific habit.

Acceptance Criteria:

  1. Page should contain information about:
  • streak
  • number of success days
  • number of failed days
  • number if skipped days
  • calendar with marked days corresponding to the progress in those days

List of User Habits for a Specific Day on the Main Page

User Story

As a user of the habit tracker mobile application, I want to be able to view a list of my habits, so that I can easily track my progress and stay accountable.

Acceptance Criteria:

  1. The page should display a list of my habits, including their names. If there are completed habits, they should be displayed under toggle list with name TBD ('completed', 'success', etc.)
  2. Each habit should have an associated icon or visual representation to quickly identify it. - TBD
  3. The habits should be arranged in a scrollable list.
  4. If there are no habits added yet, a friendly message should be displayed, encouraging the user to create their first habit.
  5. Each habit should be clickable, allowing to view more details about the habit or update its status.
  6. There should be a prominent button to add a new habit, redirecting to the "Create Habit" page.
  7. The habits should be fetched from the backend API using RESTful endpoints to ensure real-time updates and synchronization with other devices.

Additional Considerations:

The user's habits should be retrieved from the backend API upon loading the page to ensure the most up-to-date information.
Each user will have not more than 15 habits, so there is no need in Pagination. MAX_HABITS_NUMBER = 15
It would be helpful to include an option to delete a habit directly from the list, along with a confirmation prompt to prevent accidental deletion.

JWT authorization management

User Story

As a user of the habit tracker mobile application, I want to be authorized in a quick and simple way, so that I can have access to app's functionality.

Acceptance Criteria:

  1. The page should display a text field, where user can enter and sumbit their email.
  2. Once email is submitted, email text field should be faded out and become inactive or be replaced by some symbol (e.g. checkmark) with nice animation. - TBD
  3. Once email is submitted, another text field should appear, where user can enter verification code. User should have the possibility to undo this action - email text field appers/becomes active.
  4. Once verification code is submitted and is correct, access and refresh token are sent along with server time; user is redirected to the main page.
  5. Tokens and difference between server and device time should be saved in permanent storage (UserDefault for now)
  6. Once JWT access token is expired, it should be refreshed automatically under the hood, the process should not affect UX.

Additional Considerations

  • API endpoints:
    email/ - sending email address
    token/ - submitting verification code and receiving tokens
    token/refresh/ - token refreshment

Habit Creation Screen

User Story:

As a user of the app, I want to have a possibility to create habits.

Acceptance Criteria:

  1. To create a new habit following information should be provided:
  • frequency (establishes the period during which habit should be completed. Allowed are: DAILY, WEEKLY)
  • name (habit name)
  • measurement_type (defines how habit should be measured EX.: times, kcal, metres, km)
  • start_date (date starting from which habit should be tracked)
  • action_days (Monday-Sunday; (to send to the server: list of integers where 1 represents Monday and 7 represents Sunday)
  • target_value (value representing desired amount as a number of [times, kcal, metres, km] to be completed during defined period)
  1. "Save" button is clickable only if all the information is provided
  2. When habit is created ("save" button clicked) user is returned to day overview page.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.