habit-tracker's People
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:
- 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:
- 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.)
- Each habit should have an associated icon or visual representation to quickly identify it. - TBD
- The habits should be arranged in a scrollable list.
- If there are no habits added yet, a friendly message should be displayed, encouraging the user to create their first habit.
- Each habit should be clickable, allowing to view more details about the habit or update its status.
- There should be a prominent button to add a new habit, redirecting to the "Create Habit" page.
- 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:
- The page should display a text field, where user can enter and sumbit their email.
- 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
- 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.
- 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.
- Tokens and difference between server and device time should be saved in permanent storage (UserDefault for now)
- 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:
- 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)
- "Save" button is clickable only if all the information is provided
- When habit is created ("save" button clicked) user is returned to day overview page.
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google โค๏ธ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.