KnowledgeHub
Full-Stack & DevOps Engineer · 2026Runs ESPRIM's entire internship and final-year project pipeline, end to end.
Built for ESPRIM's Computer Science department, KnowledgeHub replaces email threads and shared drives with a single platform that carries a report from first upload through supervisor review to the final defense.
Three roles get three purpose-built workflows: students submit and track documents, supervisors review and give feedback, and admins handle supervisor matching, jury assignment, and publication. Once a document is approved and published, it becomes searchable through a semantic library open to the whole school.
Architecture
User & Authentication Service
JWT-based identity, sessions, and role management for students, teachers, and admins.
Resource Service
Owns the document lifecycle: submission, versioning, review status, and metadata.
Notification Service
Event-driven email and in-app alerts on submission, review outcome, and jury assignment.
AI Search Service
Python/FastAPI service that embeds and indexes published documents, and serves semantic queries.
API Gateway
Single entry point handling routing, auth checks, and request policy for every client.
Tech stack
Backend
- Spring Boot
Web
- Angular
- Tailwind CSS
Mobile
- Flutter
AI service
- Python
- FastAPI
Data
- MySQL
- MongoDB
- Redis
- MinIO
- ChromaDB
DevOps
- Docker
- Jenkins
- GitHub Actions
- SonarQube
- Prometheus
- Grafana
How submissions flow
Final-year project (PFE)
- 1Student gets matched to a supervisor by subject and CV
- 2Student uploads attestation, fiche d'accord, and journal de stage
- 3Student submits the report for supervisor review
- 4Supervisor validates or rejects with feedback, student revises and resubmits until accepted
- 5Admin assigns a jury and a rapporteur for the defense
Summer internship
- 1Student uploads attestation, fiche d'accord, journal de stage, and report
- 2Admin reviews the submission
- 3Admin assigns a jury for the defense
Quality & DevOps
- Testing pyramid: Mockito unit tests for business logic, Spring Boot + MySQL integration tests for real persistence behavior
- Static analysis gate with SonarQube before every deploy, tracking bugs, vulnerabilities, and code smells
- Multi-stage Jenkins pipeline: build, spin up test dependencies, run tests, SonarQube analysis, deploy via Docker Compose
- Prometheus and Grafana for live service health and metrics
- Health-checked, dependency-ordered Docker Compose stack across every service and datastore
Mobile app
Team
Mohamed Elgheith
Full-Stack & DevOps Engineer
Want to talk through how it was built?