This project is a Full-Stack PFE Management System designed to organize and track Final Year Projects (PFE) for students, supervisors, and academic coordinators.
It provides a centralized platform to:
- 👥 Manage users (Students, Supervisors, Coordinators, Jury)
- 📝 Submit and validate project proposals
- 📊 Track project progress
- 🎤 Manage thesis defenses
- 📚 Archive final projects
The system is built as part of an academic project with clean architecture and CI/CD integration.
Frontend (Angular)
↓ REST API
Backend (Spring Boot)
↓
PostgreSQL Database
| Actor | Responsibilities |
|---|---|
| 👨🎓 Student | Login, submit PFE, update progress, view dashboard |
| 👩🏫 Supervisor | Validate projects, follow progress, give feedback |
| 🎯 Coordinator | Manage users, assign supervisors, monitor projects |
| 🏛️ Jury | Evaluate final project, assign grades, archive results |
- Angular 17+
- TypeScript
- HTML / CSS
- Spring Boot 3
- Spring Security (JWT)
- Spring Data JPA
- PostgreSQL
- GitHub Actions (CI/CD)
- Cucumber (BDD Testing)
- Selenium WebDriver
- JUnit
University-PFE-Manager/
│
├── .github/ # CI/CD Workflows
├── backend/ # Spring Boot API
├── frontend/ # Angular Application
└── README.md
backend/
├── controller/ # REST Controllers
├── service/ # Business Logic
├── repository/ # Database Access Layer
├── entity/ # JPA Entities
├── security/ # JWT + Security Config
└── resources/
└── application.properties
frontend/src/app/
├── components/
│ ├── login/
│ ├── dashboard/
│ ├── project/
│ └── admin/
├── services/
│ ├── auth.service.ts
│ └── project.service.ts
├── app.routes.ts
└── app.config.ts
students
- id
- full_name
- email
- password
projects
- id
- title
- description
- status
- student_id
POST /auth/register
POST /auth/login
GET /projects
POST /projects
PUT /projects/{id}
DELETE /projects/{id}
GET /students
POST /students
PUT /students/{id}
DELETE /students/{id}
git clone https://github.com/Refka-Barhoumi/University-PFE-Manager.git
cd University-PFE-ManagerAssurez-vous que PostgreSQL est installé et créez une base :
Database: pf_tp
Username: postgres
Password: root
cd backend
./mvnw spring-boot:runBackend disponible sur :
http://localhost:8080
cd frontend
npm install
ng serveFrontend disponible sur :
http://localhost:4200
Les tests utilisent :
- Cucumber
- Selenium
- Chrome Headless
Exécution :
cd backend
./mvnw test -Dtest=RunCucumberTestRapport généré dans :
backend/target/cucumber-reports/
Le projet utilise GitHub Actions pour :
- Build Backend
- Build Frontend
- Lancer PostgreSQL
- Exécuter les tests Cucumber
- Générer un rapport
Projet universitaire réalisé dans le cadre de la formation FSTSBZ — A.U. 2025-2026.
Fournir un système propre, évolutif et professionnel pour la gestion des Projets de Fin d'Études (PFE) universitaires.