- Introduction
- Features
- Technologies Used
- Getting Started
- Authentication and Authorization
- Scheduler with Quartz
- Email Sending
- Improvements
PrioriTaskAPI is a task management API designed to help users manage their tasks effectively. This API lays the foundation for a powerful task management platform, offering features such as user authentication, task reminders, and email notifications.
-
User Authentication and Authorization: Implement secure user authentication and authorization using Spring Security and JWT (JSON Web Tokens).
-
Database: Utilize PostgreSQL as the database of choice. A Docker Compose file is provided for convenient local database setup.
-
Scheduler: Implement a task scheduler using Quartz, ensuring timely task reminders and notifications. Flyway automates the integration of Quartz with PostgreSQL.
-
Email Sending: Incorporate Apache Commons Email for efficient email sending functionality. Thymeleaf is employed to generate HTML email templates for task reminders and notifications.
- Spring Boot
- Kotlin
- PostgreSQL
- Docker
- Quartz Scheduler
- Flyway
- Apache Commons Email
- Thymeleaf
- JSON Web Tokens (JWT)
Before running the application, make sure you have the following prerequisites installed:
To set up the PostgreSQL database locally using Docker Compose, execute the following command within the project's root directory:
docker compose up
This command will start a PostgreSQL container with the required configurations.
- Clone this repository to your local machine:
- In terminal navigate to the project directory
- Run the Spring Boot application:
./gradlew bootRun
This action initiates the server at http://localhost:8081.
User authentication and authorization are implemented using Spring Security and JSON Web Tokens (JWT). Ensure that you include the JWT token in your requests to access protected endpoints.
Leveraging Quartz scheduler, PrioriTask ensures that task reminders and notifications are dispatched punctually. The integration of Quartz with PostgreSQL is automated through Flyway, guaranteeing smooth execution.
For efficient email communication, the application incorporates Apache Commons Email. Thymeleaf is employed to create dynamic HTML email templates for task reminders and notifications.
Future enhancements are planned, including:
- Implementation of comprehensive unit tests to ensure the reliability and stability of the API.
- Introduction of additional task-related features, such as task categories, priorities, and attachments.
- Enhanced error handling with user-friendly error messages for a seamless user experience.
- User profile management and customization options.
- Integration with a frontend application to provide users with a complete task management solution.