Winston is a personal management system. It is used for prioritising tasks and doing them, whilst keeping track of other aspects of your life.
- Define initial use cases ✅
- Define entities for those use cases ✅
- Build out the domain core of the application (Use cases and entities) 🟨
- Build controllers and routes for the application (Using clean architecture)🟥
- Build out the database (This will just plug into the controllers)🟥
- Set up google authentication🟥
- Make wireframes for frontend🟥
...
- Task
- View tasks that are upcoming
- Dismiss tasks that are no longer needed
- Add new tasks with defined priorities and length of time required to complete
- View tasks that are overdue
- Easily create pomodoro timers for tasks
- Add task to project
- Fields:
- Name
- Description
- Priority
- Due date
- Length of time required to complete
- Project
- Completed
- Completed date
- Completed by
- Created by
- Created date
- Updated by
- Updated date
- Project
- Define projects to fit tasks into
- View tasks that are assigned to a project
- Fields:
- Name
- Description
- Created by
- Created date
- Updated by
- Updated date
- User
- Sign in (With google authentication)
- Sign out
- Define work and breaks length for pomodoros
- Fields:
- Name
- Password
- Work length
- Break length
- Created date
All contributions must be created using Test Driven Development. All main folders in the application will contain a __tests__
folder, where all tests for that folder but exist.
Steps for TDD:
🔴 RED Write a failing test
🟢 GREEN Get the test to pass by writing some logic
🟡 REFACTOR Change the structure of code to make it more readable
All backend code written in this project will follow the principles of clean architecture, when and where it is plausible