Skip to content

sarthakkhanduja/todo-app

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 

Repository files navigation

Welcome to GetToWork!

A glorified to-do application

This project is currently LIVE

Your destination for interactive task management with analysis capabilities.


The features of the project are -

  • The application can host multiple users.
  • Each user can create multiple projects (Think of these as categories of the tasks you would want to maintain)
  • Every Project can have multiple to-do's or tasks.
  • Every project also has a dedicated dashboard for you to track multiple metrics of your project's progress.
  • Every Project and To-do has the CRUD capabilities.

Table of Contents

  1. Invitation to Contribute
  2. Installation
  3. Usage
  4. Tech Stack
  5. Future Work

This repository is open-sourced to allow developers to practice their skills and get a know-how of how open-source contributions work.

I hereby invite developers to pick up a future work prospect from the section below and controbute to the project. This would not only hone your open-source contributions and skills, but also allow this app to grow



Clone the repository onto your system:

git clone todo-app

Backend

Navigate to the backend directory from the root directory where you have to todo-app installed:

cd todo-app/backend

Install the required dependencies:

npm install

Create a .env file in the backend directory and add your MongoDB connection URI:

MONGOURI=<your-mongoDB-connection-URI>

Frontend

Navigate to the frontend directory from the root directory where you have to todo-app installed:

cd todo-app/frontend

Install the required dependencies:

npm install

Use two separate terminals to start the backend and the frontend servers -


Frontend

Navigate to the frontend directory from the root directory where you have to todo-app installed, and start the development server using the following command:

cd todo-app/frontend
npm run dev

Backend

Navigate to the backend directory from the root directory where you have to todo-app installed, and start the server using the following command:

cd todo-app/backend
npx nodemon index.js

This project uses a very beginner friendly blend of technologies -

  1. Node.js
  2. React.js (Javascript)
  3. MongoDB
  4. Express.js
  5. Tailwind CSS

Bugs

  • Empty To-do's

    Currently, the user is allowed to create an empty to-do. There should be a validation function (already in the code) that should be triggered whenever an empty to-do is being made. (Empty descriptions are acceptable).


  • Responsive Design Issue

    In a mobile screen view (smaller than 'sm' breakpoint), the "Project Home" view looks pretty congested because the three columns are not resized properly. I'm unable to increase the width of the parent container of those columns.

    Steps to replicate - Run the project > Login (Sign up if you haven't) > Create a Project > Click on the project made in the sidebar > Switch to mobile screen view.


Features

  • Hashing of passwords

    Currently, the passwords are stored as is, within the database. It's imperative to store the passwords in a hashed format to ensure data privacy. This would require a hash function while a user is signing up, and signing a token only if the hashed value of entered password is the same as that in the database, while the user is trying to sign in.


  • Editting To-do's

    On double-clicking a to-do's title or description, the user should be able to edit it.


  • Visualization Info Icon OnHover

    For all the visualizations, it would be beneficial if the user can see what the visualization is trying to track. So, a modal being displayed on hovering over the Info icon on each visualization, which would consist of information about that particular visualization would be helpful.


About

A full-stack attempt towards a simple to-do application

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 3

  •  
  •  
  •  

Languages