Taskmaster is a full-stack web application designed to help users manage their tasks efficiently. Built with the MERN stack (MongoDB, Express.js, React.js, Node.js), this application allows users to register, login, create, update, delete, and mark tasks as completed. Additionally, users can filter tasks by their status (completed or pending) and search for tasks by name.
- User Registration and Login
- Create, Update, and Delete Tasks
- Mark Tasks as Completed
- Filter Tasks by Status (Completed, Pending)
- Search Tasks by Name
- Responsive and User-Friendly Interface
- JWT Authentication
Check out the live demo: Taskmaster Live Demo
Follow these steps to set up the project locally:
- Clone the repository:
git clone https://github.com/shuvra-matrix/Task-Manager-MERN.git cd Task-Manager-MERN
- Navigate to the client directory:
cd client
- Install the dependencies:
npm install
- Start the development server:
npm run dev
- Navigate to the server directory:
cd server
- Install the dependencies:
npm install
- Start the development server:
npm run dev
Create a .env
file in the server directory with the following variables:
MONGO_USER=your_mongodb_user
MONGO_PASS=your_mongodb_password
JWT_SECRET=your_jwt_secret
COOKIE_DOMAIN=localhost_or_your_server_domain
ISPRODUCTION=false_or_true
COOKIE_EXPIRE=86400000
Create a .env.local
file in the client directory with the following variable:
VITE_SERVER_URL=your_server_url
To run the project using Docker, follow these steps:
- Ensure you have Docker and Docker Compose installed on your machine.
- In the root directory of the project, run the following command:
docker-compose -f ./docker-compose.yaml up
- Docker will build the images and start the containers for both the client and server.
Contributions are welcome! Please follow these steps to contribute:
- Fork the repository.
- Create a new branch with a descriptive name.
- Make your changes and commit them with clear and concise messages.
- Push your changes to your forked repository.
- Create a pull request to the main repository.
If you encounter any issues or have any feature requests, please create an issue in the Issues section of the repository.