A full-stack student management system built on a distributed, event-driven microservices architecture for the "Software Architecture" module.
| Feature Area | Description |
|---|---|
| 🏛️ Microservices Architecture | The system is decoupled into independent services: a Spring Boot/Java backend for managing students and a Node.js/Fastify backend for handling grades. |
| 📨 Event-Driven Communication | Services communicate asynchronously using Apache Kafka. For example, deleting a student publishes an event that the grades service consumes to delete associated grades. |
| 🐘 Polyglot Persistence | Utilizes the best database for each service's needs: MySQL for the relational student data and MongoDB for the flexible, document-based grade data. |
| 🚪 Centralized API Gateway | A Kong API Gateway acts as a single entry point, routing requests to the appropriate backend service and simplifying client-side logic. |
| 🐳 Containerized Deployment | The entire multi-service application, including databases and Kafka, is fully containerized with Docker and orchestrated using a single docker-compose file. |
| 💻 Modern Frontend | A sleek and functional user interface built with Next.js, Shadcn/ui, and a powerful, reusable TanStack Table component for data display and interaction. |
| 🔒 Secure Authentication | Robust user authentication handled by the frontend using NextAuth, with options for both standard credentials and Google OAuth. |
This project demonstrates a polyglot, distributed system using a wide range of modern technologies.
The project is built on a microservices architecture where two separate backends handle distinct domains (Students and Grades). They communicate asynchronously via a Kafka message broker, and all traffic is routed through a Kong API Gateway.
(An architecture diagram would be ideal here to visually represent the system flow.)
High-level architecture of the EduTrack system.
The main dashboard displaying the student data table with actions for managing students and grades.
The modal interface for searching students by class and inserting their grades.
Let's connect! I'm always open to discussing new projects, creative ideas, or opportunities to be part of an amazing team.
Walid Zakan
- 📧 Email: walid.zakan@gmail.com
- 💼 LinkedIn: linkedin.com/in/walid-zakan