MeloTask is a RESTful task management system built with Spring Boot in MVC design pattern, designed to help teams efficiently organize and track their work. Inspired by tools like Jira, it allows users to manage projects, create tasks, and collaborate seamlessly. With features like JWT authentication, OAuth2 via Google, and MongoDB Atlas for data storage, MeloTask ensures a secure, scalable, and flexible experience for managing tasks. The API is well-documented using Swagger, and the project is fully containerized with Docker for easy deployment.
MeloTask provides a comprehensive and interactive API documentation using Swagger UI. This allows developers to explore and test API endpoints with ease.
Once the server is running, open your browser and navigate to:
MeloTask implements JWT-based authentication to ensure secure access to the API. Users have two options to authenticate:
- Login with Username & Password
- Login via Google OAuth2
Regardless of the method, upon successful authentication, a unique JWT (JSON Web Token) is generated for the user.
The JWT contains important user information and is signed for security. Below is an example of the token payload:
{
"userId": "67be06b24fg00c4dce2e43d7",
"sub": "Ahmed123",
"iat": 1740862387,
"exp": 1740948787
}
MeloTask is fully containerized using Docker, making it easy to set up and run with minimal configuration.
Ensure you have Docker and Docker Compose installed on your system.
In the project root directory, create a .env
file and add the required environment variables:
MONGO_URI=
MONGO_DATABASE=
JWT_SECRET_KEY=
JWT_EXPIRATION_TIME=
GOOGLE_CLIENT_ID=
GOOGLE_CLIENT_SECRET=
To build and start the application, run:
docker-compose up --build
This will:
- Pull the necessary dependencies
- Build the Docker image
- Build the JAR file into the docker container
- Start the MeloTask server