A full-stack task management application built with the MERN stack (MongoDB, Express.js, React.js, Node.js). This app enables users to register, log in, and manage their tasks effectively — including creating, updating, deleting, and marking tasks as completed.
- User authentication (sign up, log in, and log out)
- Task management (create, read, update, delete)
- JWT-based authentication for secure access
- User-specific task visibility
- RESTful API with Express.js
- MongoDB for persistent storage
- Responsive UI using React.js and Redux Toolkit
Frontend:
- React.js
- Redux Toolkit
- React Router
Backend:
- Node.js
- Express.js
Database:
- MongoDB (with Mongoose for data modeling)
Authentication:
- JSON Web Tokens (JWT)
Make sure the following are installed on your system:
- Node.js (v12 or later)
- MongoDB (local installation or MongoDB Atlas)
git clone https://github.com/Akrishna4/MERN-task-management-tool.git
cd MERN-task-management-tool
- Navigate to the backend directory:
cd backend
- Install dependencies:
npm install
- Create a
.env
file in thebackend
folder and add the following:
MONGO_URI=your_mongodb_connection_string
JWT_SECRET=your_jwt_secret
- Start the backend server:
npm run dev
The backend will be running on:
http://localhost:5000
- Navigate to the frontend directory:
cd ../frontend
- Install dependencies:
npm install
- Start the frontend development server:
npm start
The frontend will be running on:
http://localhost:3000
- Register or Log In: Create a new account or log in to an existing one.
- Manage Tasks: Add new tasks, edit or delete existing ones, and mark them as completed or pending.
- Protected Routes: All task operations are secured with JWT authentication.
MERN-task-management-tool/
├── backend/
│ ├── config/ # DB and server configuration
│ ├── controllers/ # Logic for API routes
│ ├── models/ # Mongoose schemas
│ ├── routes/ # Express route definitions
│ ├── middleware/ # Auth middleware, error handling
│ └── server.js # Entry point of backend server
│
├── frontend/
│ └── src/
│ ├── components/ # Reusable UI components
│ ├── redux/ # Redux state slices
│ ├── pages/ # Page components (Login, Home, etc.)
│ └── App.js # Root component
│
├── .gitignore
├── package.json
├── README.md
We welcome contributions!
1. Fork the repository
2. Create a new branch: git checkout -b feature/your-feature
3. Commit your changes: git commit -am 'Add feature'
4. Push the branch: git push origin feature/your-feature
5. Open a Pull Request 🎉
This project is licensed under the MIT License.
If you have any questions, feel free to open an issue or submit a pull request.