A comprehensive web application built with Spring Boot to streamline supervisor management across RADEM agencies in Meknes, Morocco.
This web application was developed during an internship at RADEM Meknes (August 2024 - September 2024) under the supervision of Mr. AMAR Ahmed. The system provides a complete solution for managing supervisors, agencies, and users with role-based access control.
- Backend: Spring Boot 3.x, Spring Security, Spring Data JPA
- Frontend: HTML5, CSS3, JavaScript, Bootstrap 4, Thymeleaf
- Database: MySQL
- Build Tool: Maven
- Authentication: Spring Security with BCrypt password encoding
- UI Framework: Bootstrap 4 with Font Awesome icons
- Admin: Complete system management including user and agency management
- Manager: Supervisor management and reporting capabilities
- User: View-only access to supervisors and agencies
- User Management: Create, edit, and delete user accounts with role assignments
- Supervisor Management: Track and manage supervisor activities across agencies
- Agency Management: Organize and maintain agency information
- Profile Management: Users can update their profiles and change passwords
- Responsive Design: Mobile-friendly interface with modern UI components
- Role-based access control (RBAC)
- CSRF protection
- Password encryption with BCrypt
- Session management
- Custom access denied handling
- Java 17 or higher
- Maven 3.6+
- MySQL 8.0+
- IDE (IntelliJ IDEA, Eclipse, or VS Code)
-
Clone the repository
git clone https://github.com/Yasouimo/SupEncaisseurs.git cd springboot-radem -
Configure Database
- Create a MySQL database named
sup - Update
application.propertieswith your database credentials:
spring.datasource.url=jdbc:mysql://localhost:3306/sup spring.datasource.username=your_username spring.datasource.password=your_password
- Create a MySQL database named
-
Run the Application
mvn spring-boot:run
-
Access the Application
- Navigate to
http://localhost:8080 - Use the login credentials for your assigned role
- Navigate to
The application is available as a Docker image for quick deployment.
-
Pull and run the Docker image
docker run -d -p 8080:8080 --name radem-supervisor yasouimo14/radem-supervisor:latest
-
Access the application
- Navigate to
http://localhost:8080 - The application will be ready to use immediately
- Navigate to
- Stop the container:
docker stop radem-supervisor - Start the container:
docker start radem-supervisor - Remove the container:
docker rm radem-supervisor
src/
βββ main/
β βββ java/com/superviseur/springboot/
β β βββ Agence/ # Agency management
β β βββ Role/ # Role management
β β βββ Superviseur/ # Supervisor management
β β βββ User/ # User management
β β βββ config/ # Security configuration
β β βββ constants/ # Application constants
β βββ resources/
β βββ static/css/ # Stylesheets
β βββ static/images/ # Images and assets
β βββ templates/ # Thymeleaf templates
- β Manage all users (create, edit, delete)
- β Manage agencies (create, edit, delete)
- β View user management dashboard
- β Cannot manage supervisors directly
- β Manage supervisors (create, edit, delete)
- β View supervisor dashboard with filtering
- β Access profile management
- β Cannot manage users or agencies
- β View supervisors and agencies
- β Filter supervisors by agency
- β Access profile management
- β No create/edit/delete permissions
- Authentication: Form-based login with custom success handlers
- Authorization: Method-level security with role-based access
- Password Security: BCrypt encoding for all user passwords
- CSRF Protection: Enabled for all state-changing operations
- Session Management: Secure session handling with proper logout
The application uses the following main entities:
- Users: User authentication and profile information
- Roles: System roles (Admin, Manager, User)
- Supervisors: Supervisor information and agency assignments
- Agencies: Agency details and supervisor relationships
- Backend Development: Built with Spring Boot following MVC architecture
- Frontend Integration: Thymeleaf templates with Bootstrap for responsive design
- Security Implementation: Spring Security for authentication and authorization
- Database Integration: JPA/Hibernate for data persistence
- Testing: Unit tests included for core functionality
Developer: BELLMIR Yahya
Supervisor: Mr. AMAR Ahmed
Organization: RADEM Meknes
Duration: August 2024 - September 2024
This project was developed as part of an internship program at RADEM Meknes.
Special thanks to Mr. AMAR Ahmed for his guidance and supervision throughout the development of this application, and to the RADEM Meknes team for providing the opportunity to work on this project.
This application demonstrates the implementation of a scalable, secure, and maintainable web application using modern Spring Boot technologies with a focus on user experience and system security.



