Skip to content

Yasouimo/SupEncaisseurs

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

13 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

RADEM Supervisor Management System

A comprehensive web application built with Spring Boot to streamline supervisor management across RADEM agencies in Meknes, Morocco.

πŸ“‹ Project Overview

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.

πŸ”§ Technologies Used

  • 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

🌟 Key Features

Multi-Role Authentication System

  • Admin: Complete system management including user and agency management
  • Manager: Supervisor management and reporting capabilities
  • User: View-only access to supervisors and agencies

Core Functionalities

  • 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

Security Features

  • Role-based access control (RBAC)
  • CSRF protection
  • Password encryption with BCrypt
  • Session management
  • Custom access denied handling

πŸ–ΌοΈ Application Screenshots

Login Page

login

Admin Dashboard

accueil

Manager Dashboard

main manager

User Dashboard

main user

πŸš€ Getting Started

Prerequisites

  • Java 17 or higher
  • Maven 3.6+
  • MySQL 8.0+
  • IDE (IntelliJ IDEA, Eclipse, or VS Code)

Installation

  1. Clone the repository

    git clone https://github.com/Yasouimo/SupEncaisseurs.git
    cd springboot-radem
  2. Configure Database

    • Create a MySQL database named sup
    • Update application.properties with your database credentials:
    spring.datasource.url=jdbc:mysql://localhost:3306/sup
    spring.datasource.username=your_username
    spring.datasource.password=your_password
  3. Run the Application

    mvn spring-boot:run
  4. Access the Application

    • Navigate to http://localhost:8080
    • Use the login credentials for your assigned role

🐳 Docker Deployment

The application is available as a Docker image for quick deployment.

Quick Start with Docker

  1. Pull and run the Docker image

    docker run -d -p 8080:8080 --name radem-supervisor yasouimo14/radem-supervisor:latest
  2. Access the application

    • Navigate to http://localhost:8080
    • The application will be ready to use immediately

Docker Commands

  • Stop the container: docker stop radem-supervisor
  • Start the container: docker start radem-supervisor
  • Remove the container: docker rm radem-supervisor

πŸ“ Project Structure

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

πŸ” User Roles and Permissions

Admin Role

  • βœ… Manage all users (create, edit, delete)
  • βœ… Manage agencies (create, edit, delete)
  • βœ… View user management dashboard
  • ❌ Cannot manage supervisors directly

Manager Role

  • βœ… Manage supervisors (create, edit, delete)
  • βœ… View supervisor dashboard with filtering
  • βœ… Access profile management
  • ❌ Cannot manage users or agencies

User Role

  • βœ… View supervisors and agencies
  • βœ… Filter supervisors by agency
  • βœ… Access profile management
  • ❌ No create/edit/delete permissions

πŸ›‘οΈ Security Implementation

  • 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

πŸ“Š Database Schema

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

πŸ”„ Development Workflow

  1. Backend Development: Built with Spring Boot following MVC architecture
  2. Frontend Integration: Thymeleaf templates with Bootstrap for responsive design
  3. Security Implementation: Spring Security for authentication and authorization
  4. Database Integration: JPA/Hibernate for data persistence
  5. Testing: Unit tests included for core functionality

πŸ‘₯ Team

Developer: BELLMIR Yahya
Supervisor: Mr. AMAR Ahmed
Organization: RADEM Meknes
Duration: August 2024 - September 2024

πŸ“„ License

This project was developed as part of an internship program at RADEM Meknes.

🀝 Acknowledgments

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.

Releases

No releases published

Packages

 
 
 

Contributors