https://github.com/mohammedaoudi/exam-surveillance-platform
A modern exam surveillance management system built with Spring Cloud microservices and React. Streamlines exam planning and surveillance assignments at ENSA El Jadida with automated scheduling and comprehensive reporting.
https://github.com/mohammedaoudi/exam-surveillance-platform
education-software exam-management exam-management-system keycloak material-tailwind microservices react redux-toolkit scheduling-system spring-boot spring-cloud university-management
Last synced: about 2 months ago
JSON representation
A modern exam surveillance management system built with Spring Cloud microservices and React. Streamlines exam planning and surveillance assignments at ENSA El Jadida with automated scheduling and comprehensive reporting.
- Host: GitHub
- URL: https://github.com/mohammedaoudi/exam-surveillance-platform
- Owner: Mohammedaoudi
- Created: 2025-01-11T16:22:38.000Z (4 months ago)
- Default Branch: main
- Last Pushed: 2025-01-11T17:09:05.000Z (4 months ago)
- Last Synced: 2025-01-11T17:46:01.478Z (4 months ago)
- Topics: education-software, exam-management, exam-management-system, keycloak, material-tailwind, microservices, react, redux-toolkit, scheduling-system, spring-boot, spring-cloud, university-management
- Language: JavaScript
- Homepage:
- Size: 2.45 MB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Exam Surveillance Management System - ENSA El Jadida
A comprehensive web application for managing and planning exam surveillance at the National School of Applied Sciences of El Jadida (ENSA El Jadida).
## π Features
- Department and faculty management
- Exam session planning
- Automated surveillance assignments
- Venue management (amphitheaters and classrooms)
- Backup supervisor system
- Surveillance schedule generation## π Technical Architecture
### Frontend Technology Stack
- React.js for UI components
- Redux Toolkit for state management and API calls
- Material Tailwind for modern UI components
- Responsive design optimized for all devices### Backend Microservices Architecture
Built on Spring Cloud Netflix stack for robust microservices:- **API Gateway Service**
- Spring Cloud Gateway for routing
- Load balancing
- Security filters
- Rate limiting- **Service Registry (Eureka Server)**
- Service discovery
- Load balancing
- Fault tolerance- **Config Server**
- Centralized configuration
- Environment-specific settings
- Runtime configuration updates- **Core Microservices**
- Exam Service (Service des Examens)
- Department Service (Service des DΓ©partements)
### Security
- Keycloak for Identity and Access Management
- OAuth 2.0 / OpenID Connect
- Role-based access control
- Single Sign-On (SSO)
- User Federation### Database Architecture
- MySQL databases (one per service)
- Database per service pattern## π Prerequisites
- Node.js (v14+)
- Java 17
- Maven 3.8+
- MySQL 8.0+
- Docker & Docker Compose
- Keycloak 21+## π Installation
### Frontend Setup
```bash
# Clone the repository
git clone https://github.com/Mohammedaoudi/Exam-surveillance-platform.git# Navigate to frontend directory
cd frontend# Install dependencies
npm install# Start development server
npm start
```### Backend Services Setup
```bash
# Start infrastructure services
docker-compose up -d# Navigate to service directory
cd [service-name]# Build with Maven
mvn clean install# Run the service
mvn spring-boot:run
```### Keycloak Configuration
1. Start Keycloak server:
```bash
docker-compose up keycloak
```2. Access Keycloak Admin Console (http://localhost:8180)
3. Create new realm
4. Configure client settings
5. Set up roles and initial users## π Configuration
### Frontend Environment Variables
```env
REACT_APP_API_URL=http://localhost:8080
REACT_APP_KEYCLOAK_URL=http://localhost:8180
REACT_APP_KEYCLOAK_REALM=your-realm
REACT_APP_KEYCLOAK_CLIENT_ID=your-client-id
```### Microservice Configuration Example
```yaml
spring:
application:
name: exam-service
cloud:
config:
uri: http://localhost:8888
discovery:
enabled: true
datasource:
url: jdbc:mysql://localhost:3306/exam_db
username: root
password: rooteureka:
client:
serviceUrl:
defaultZone: http://localhost:8761/eureka/
```## π₯ Demo Video
https://github.com/user-attachments/assets/e732830c-9c75-4c4a-896d-5fc497de7af0
## π₯ Contributors
- [CHOUAY Walid](https://github.com/CHOUAY15)
- [BESSAM Adam](https://github.com/AdamBessam)
- [DAOUDI Mohammed](https://github.com/Mohammedaoudi)## π¬ Support
For support and questions, please [open an issue](https://github.com/Mohammedaoudi/Exam-surveillance-platform/issues) on GitHub.
## π License
This project is the property of ENSA El Jadida. All rights reserved.