Skip to content

pieroguerrero/todolist

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

45 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Todolist

Lightweight To-do management web app. Live demo here.

Table of Contents

General Information

  • 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.

Technologies and Techniques used

Planning and Design:

  • 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:


TailwindUI template

Front-end:

  • Vanilla Javascript.
  • Internal application state managed 100% with Clousures.
  • CSS design with Tailwind CSS.
  • The web app is 100% responsive.

Back-end:

  • 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.

Testing:

  • 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.

Features

  • 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 πŸ”œ

Screenshots

Click an image to enlarge.

Dashboard Dashboard responsive Task Edit
Tasks Dashboard Tasks Dashboard Editing Task

Setup

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 Status

Project is: in progress

Room for Improvement

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.