Task Tracker is an enterprise-grade, modular task management system designed with a microservice architecture. The platform leverages modern Java, Spring Boot, Kafka, WebSockets, and Docker technologies to provide robust, scalable, and real-time task tracking and notification capabilities.
- 🔐 JWT-based Authentication: Secure stateless authentication and authorization.
- 📝 Task CRUD Operations: Endpoints for creating, updating, deleting, and retrieving tasks, with support for filtering and pagination.
- 📡 Real-Time Notifications: WebSocket and STOMP integration for instant UI updates on task changes and deadlines.
- ⏰ Automated Scheduling: Spring Scheduling and dedicated microservices for overdue task notifications and email reminders.
- 📨 Event-Driven Architecture: Kafka-based asynchronous message processing for decoupled service communication.
- 🛡️ Role-Based Security: Password hashing (BCrypt), CORS protection, rate limiting.
- 🔗 REST API: RESTful endpoints, DTO mapping, error handling, and API versioning.
- 🚦 Rate Limiting: Integrated with Redis and Bucket4j for API abuse prevention.
- 🐳 Containerization: Dockerized deployment, multi-module Maven build, and Docker Compose orchestration.
- Backend: Java 17, Spring Boot, Spring Security, Hibernate, Kafka, WebSocket (STOMP), Spring Scheduling
- Frontend: Next.js (React), TypeScript, STOMP.js, Sock.js, axios, CSS
- Microservices: Spring Boot (Scheduler, Email Sender)
- Database: MySQL
- Caching & Rate Limiting: Redis, Bucket4j
- DevOps: Docker, Docker Compose, Maven (multi-module), npm
- Monorepo Structure: Separate modules for backend, frontend, scheduler, email sender, and shared code (common)
- Microservices: Backend, scheduler, and email sender as independent Spring Boot services
- Event-Driven: Kafka for asynchronous communication between services
- Real-Time: WebSocket endpoints for authenticated user notifications
- Security: JWT, BCrypt, CORS, rate limiting
- Java 17+
- Node.js 18+
- Docker & Docker Compose
- MySQL (or use Docker)
Environment variables are required for each module. Example variables:
DB_HOST,DB_PORT,DB_USER,DB_PASS,JWT_SECRET,KAFKA_BROKER, etc.
make build
# or
docker-compose up --build- REST API: See controllers folder
- WebSocket: See
KafkaBackendListener. for endpoint structure. Connect to/ws, subscribe to/user/{username}/topic/notificationsfor real-time updates.
- Java Core (OOP, collections, generics, concurrency, exception handling)
- Spring Boot (REST, Security, JPA, Scheduling, AOP, validation)
- DTO mapping and separation of concerns
- Kafka, event-driven and asynchronous message processing
- WebSocket, STOMP, real-time frontend integration
- SQL, MySQL, JPA/Hibernate
- Docker, Docker Compose, multi-module Maven
- Redis (caching, rate limiting)
- API versioning, error handling, validation
- Spring Scheduling (automated tasks, notifications)
- Authentication, authorization, rate limiting
- Modular architecture, logging
- Git, GitHub, CI/CD basics