Skip to content

SurajCh6613/task-manager

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

78 Commits
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

πŸ“ Task Manager (MERN Stack)

A full-stack Task Management application built with the MERN stack (MongoDB, Express.js, React.js, and Node.js) that allows users to register, log in, and manage their personal tasks with ease β€” along with automated email reminders.

πŸš€ Features

  • πŸ” Authentication – Register & Login functionality with hashed passwords using bcrypt
  • πŸ“‹ Task Management – Create, view, update, and delete your daily tasks
  • πŸ“¦ RESTful API – Built using Express.js and connected to MongoDB via Mongoose
  • πŸ“¦ Email Reminders – Automatically sends task reminders 1 hour before deadline using node-cron and nodemailer
  • βš›οΈ Frontend – React.js with Axios for API integration
  • πŸ’Ύ Persistent Storage – MongoDB Atlas used to store user and task data
  • πŸ“€ Deployed – Easily deployable to platforms like Render, Vercel

πŸ–₯️ Tech Stack

  • Frontend: React.js, Axios, Tailwind CSS (if used)
  • Backend: Node.js, Express.js
  • Database: MongoDB (MongoDB Atlas)
  • Authentication: JWT, bcrypt
  • Email: Nodemailer
  • Scheduling: node-cron

πŸ“‚ Folder Structure

task-manager/
β”œβ”€β”€ backend/
β”‚   β”œβ”€β”€ controllers/
|   β”œβ”€β”€ config/
β”‚   β”œβ”€β”€ models/
β”‚   β”œβ”€β”€ routes/
|   β”œβ”€β”€ jobs/
β”‚   └── server.js
β”œβ”€β”€ frontend/
β”‚   β”œβ”€β”€ src/
β”‚   β”‚   β”œβ”€β”€ components/
β”‚   β”‚   β”œβ”€β”€ pages/
β”‚   β”‚   └── App.jsx
└── README.md

πŸ› οΈ Installation

Prerequisites => Node.js and npm installed => MongoDB Atlas URI

Backend Setup

cd backend
npm install
# Create a .env file with the following:
# MONGO_URI=your_mongodb_connection_string
# JWT_SECRET=your_secret_key
# EMAIL=your_email@example.com
# EMAIL_PASSWORD=your_app_password
npm run server

Frontend Setup

cd frontend
npm install
npm start

πŸ”’ Environment Variables

Create a .env file in the backend directory:

MONGO_URI=your_mongodb_connection_string
JWT_SECRET=your_jwt_secret

πŸ” Email Reminder Job A background cron job runs every minute using node-cron, and sends email reminders for tasks that are:

Due within the next hour

Not yet reminded (reminderSent: false)

To ensure this works:

Add task dates in near-future (e.g., within 1 hour)

Verify email and task creation work correctly

Configure Gmail to allow app passwords

πŸ“Έ Screenshots

Coming Soon...

🀝 Contributing

  1. Fork the repo

  2. Create your feature branch: git checkout -b feature/YourFeature

  3. Commit your changes: git commit -m 'Add some feature'

  4. Push to the branch: git push origin feature/YourFeature

  5. Open a pull request

πŸ“„ License

This project is licensed under the MIT License.

πŸ™‹β€β™‚οΈ Author

Suraj Chaudhary – @SurajCh6613