Lightweight To-do management web app. Live demo here.
- General Info
- Technologies and Techniques used
- Features
- Screenshots
- Setup
- Project Status
- Room for Improvement
- This project is the MVP version of Todoist.com's To-Do app.
- Information is stored in the Local Storage, there is a separate branch being worked with the Firebase BAAS.
- The planning was done with the User Story Mapping technique.
- The web app architecture is Layared, you can find the Package Diagram here.
- The Class Diagram designed for this web app is here.
- The UI was implemented matching the todoist.com UI shapes and colors from scratch:
- Vanilla Javascript.
- Internal application state managed 100% with Clousures.
- CSS design with Tailwind CSS.
- The web app is 100% responsive.
- This web app has no backend for now.
- Due to the type of information is handled, all the information is stored in the Local Storage.
- Manual Testing was done with ~80% coverage.
- While testing, the project was run using the Chrome's Development Tools "Fast 3G" and "No Caching" options. So the app is ready for slow internet connections.
- Create Projects β
- Create, Modify and Remove Tasks β
- Mask Tasks as Done β
- Create, Modify and Remove SubTasks β
- Create, Modify and Remove Notes β
- Filter Tasks by Project β
- Filter Tasks by Dates β
- Enable Tasks Expiration notifications π
- Store data in the Cloud π
- Sign-up and Log-in π
- Assign Tasks to other user π
Click an image to enlarge.
Dashboard | Dashboard responsive | Task Edit |
---|---|---|
Clone this project by doing:
$ git clone https://github.com/pieroguerrero/todolist.git
Then go to the folder you cloned the code and execute:
$ npm install
WARNING: If you are going to use other libraries to achieve other purposes be carefull and remove the caret (^) prefix that the dependency versions have.
Project is: in progress
There are always room for improvement, in this project so far the thinkgs that can be improved are:
- Enable back-end APIs so the user can store information in the Cloud or enable a BAAS such as Firebase.
- Implement automated Unit Testing.
- Migrate to a Javascript framework in order to increase the maintainability for future changes.