Skip to content

A full-stack student management system for the 'Software Architecture' module, built on a microservices architecture. It features two backends (Spring Boot/Java & Node.js/Fastify), event-driven communication via Apache Kafka, and a Next.js frontend, all unified under a Kong API Gateway.

Zawalid/EduTrack

Repository files navigation


🎓 EduTrack

A full-stack student management system built on a distributed, event-driven microservices architecture for the "Software Architecture" module.


Status Next.js Spring Boot Node.js Kafka Docker

📌 Table of Contents


✨ Core Features

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.

🧰 Technology Stack

This project demonstrates a polyglot, distributed system using a wide range of modern technologies.

Category Technologies & Services
Frontend Next.js Next.js with TypeScript TypeScript and Shadcn/ui Shadcn/ui.
Student Service (Java) Spring Boot Spring Boot with Spring Data JPA for managing student data.
Grades Service (Node.js) Node.js Node.js with the Fastify Fastify framework and Mongoose for managing grade data.
Messaging & Events Apache Kafka Apache Kafka for asynchronous, event-driven communication between backend services.
API Gateway Kong Kong API Gateway to provide a unified entry point and route traffic to the appropriate microservice.
Databases MySQL MySQL for relational student data and MongoDB MongoDB for document-based grade storage.
Containerization Docker Docker & Docker Compose to containerize and orchestrate all components of the system for easy setup and deployment.

🏗️ Architecture & Screenshots

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.)

EduTrack System Architecture
High-level architecture of the EduTrack system.


EduTrack Frontend Dashboard
The main dashboard displaying the student data table with actions for managing students and grades.


Insert Grades Modal
The modal interface for searching students by class and inserting their grades.


📨 Get In Touch

Let's connect! I'm always open to discussing new projects, creative ideas, or opportunities to be part of an amazing team.

Walid Zakan

About

A full-stack student management system for the 'Software Architecture' module, built on a microservices architecture. It features two backends (Spring Boot/Java & Node.js/Fastify), event-driven communication via Apache Kafka, and a Next.js frontend, all unified under a Kong API Gateway.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •