A Spring Boot application for managing student documents and academic records at ENSA Tétouan.
- Generate and manage academic documents:
- School attendance certificates (
TypeDocument.ATTESTATION_SCOLARITE) - Academic transcripts (
TypeDocument.RELEVE_NOTES)
- School attendance certificates (
- JWT-based authentication system
- Role-based access control (
Role.ADMIN) - Secure password encoding with BCrypt
- Document request processing
- Claims handling
- Automated email notifications for:
- Approved document requests
- Rejected requests
- Processed claims
- Generate comprehensive statistics on:
- Document requests
- Processing times
- Approval/rejection rates
- Weekly trends
- Backend Framework: Spring Boot 3.4.0
- Database: MySQL
- Security: Spring Security with JWT
- Documentation: OpenAPI/Swagger
- PDF Generation: Flying Saucer + iText
- Template Engine: Thymeleaf
- Build Tool: Maven
- Java 17
- MySQL 8.0+
- Maven 3.6+
- Configure database connection in application.properties:
spring.datasource.url=jdbc:mysql://localhost:3306/gest_etu_db
spring.datasource.username=root
spring.datasource.password=password- Configure email settings:
spring.mail.host=smtp.gmail.com
spring.mail.port=587
spring.mail.username=your-email@gmail.com
spring.mail.password=your-app-password- Build the project:
./mvnw clean install- Run the application:
./mvnw spring-boot:runThe application will be available at http://localhost:8088
Once the application is running, access the OpenAPI documentation at:
| Method | Endpoint | Description |
|---|---|---|
| GET | /api/admin/demandes |
Retrieve all student requests |
| PUT | /api/admin/demandes/{id}/approve |
Approve a specific student request |
| PUT | /api/admin/demandes/{id}/reject |
Reject a specific student request |
| GET | /api/admin/demandes/{id}/pdf |
Download PDF of a specific request |
| GET | /api/admin/reclamations |
Retrieve all reclamations |
| PUT | /api/admin/reclamations/{id}/treat |
Treat a specific reclamation |
| GET | /api/admin/statistiques |
Get application statistics |
src/main/java/ma/ensate/gestetudiants/
├── config/ # Configuration classes
├── controller/ # REST controllers
├── dto/ # Data Transfer Objects
├── entity/ # JPA entities
├── enums/ # Enumerations
├── exception/ # Custom exceptions
├── mapper/ # DTO-Entity mappers
├── repository/ # JPA repositories
├── service/ # Business logic
└── util/ # Utility classes
The system uses JWT for authentication. Default admin credentials:
- Username:
admin - Password:
admin
This project is licensed under the Apache License 2.0 - see the LICENSE file for details.