This repository holds a time management App that uses the Pomodoro technique. It is built with Typescript
, NextJS
, Redux
, Bootstrap 5
and Sass
.
The App uses redux (with react-redux and redux-toolkit) and LocalStorage as the main datasource. This will change in future releases.
Check the live demo.
- Install dependencies with npm.
npm install
- Generate a build.
npm run build
- Define the
$PORT
variable in your environment. - Run the app.
npm start
The app contains the following pages:
/
- Pomodoro Timer
The app aims to improve your focus and concentration while you are working on a set of tasks. To get started follow the following steps:
- Create a new task by typing a title and selecting the number of Pomodoros it will take.
- Select the new created task by clicking the button with the "Play" icon.
- Start the timer by clicking the "Start" button on the Tomato.
- Start working on your task.
Your task will be planned and scheduled by using the following iteration types:
- Pomodoro: 25 minutes (Work period)
- Short break: 5 minutes (Break period, run after each pomodoro)
- Long break: 15 minutes (Break period, run after 4 completed pomodoros)
All your data will be stored within LocalStorage, so be careful, if you clean your LocalStorage all your data will be lost!
The minutes of each iteration can be modified accordingly to your needs. The alarm sound (sounds after each completed iteration) can also be configured. To do so, just click on the "Settings" section and update your settings as you wish.
- Unit test components
- Install and setup eslint
- Add authentication for users (with social login)
- Design a data-model for the backend
- Choose a datasource for the backend
- Rehydrate redux store with the backend datasource
At the moment no linting tool has been installed. Linting may be provided by eslint
and @typescript-eslint/parser
This repository is versioned using SemVer (Semantic Versioning) and commits are formatted by using Conventional Commits.
At the moment the app has not been tested.
Nahuel Vazquez (@netishix)