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.
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
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>
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 -
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
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 -
- Node.js
- React.js (Javascript)
- MongoDB
- Express.js
- Tailwind CSS
-
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.
-
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.