This project is a web application developed as part of a module's final project, The goal is to create a system for efficiently managing a training center. The technologies used include Spring Boot for the backend, Angular for the frontend, and MySQL for database storage.
-
Store and manage training project documents efficiently: Develop a system to effectively handle and organize documents related to training projects.
-
Plan training sessions and allocate trainers appropriately: Create a scheduling mechanism for training sessions and ensure trainers are assigned based on their expertise and availability.
-
Authentication Interface:
- Create an authentication interface for the roles: admin, formateur, and assistant.
-
Admin Adds Formation:
- Allow the admin to add a new formation for the public, specifying details such as duration, cost, objectives, and a detailed program.
-
Admin Adds Formateurs:
- Enable the admin to add formateurs, specifying a set of keywords that characterize their skills. Also, include a remarks field.
-
Admin/Assistant Adds Entreprises:
- Allow the admin or assistant to add a list of entreprises, specifying name, address, phone, URL, and email.
-
Admin/Assistant Plans Formation:
- Enable the admin or assistant to plan a new formation by assigning a formateur and an entreprise to a set of dates.
-
Individuals Registration for Formation:
- If the formation is for individuals, allow them to register (providing name, surname, date of birth, city, email, and phone) via a dedicated form on the homepage. Admin or assistant then assigns the formateur to the group of individuals.
-
Public Homepage:
- The homepage is public and displays all formations added by the admin. Include simple filters for formation category, and date.
-
Participant Evaluation:
- Participants receive a link to an evaluation form where they rate the formateur on pedagogical quality, pace, course and practical work support, and subject mastery.
-
External Formateur Interest:
- Allow external formateurs to express interest in conducting a formation by registering on the platform and providing keywords reflecting their profile.
-
Considerations:
- Consider aspects such as ergonomics, graphic design, layered modeling and security.
- Backend: Spring Boot
- Frontend: Angular
- Database: MySQL
Before you begin, ensure you have the following installed:
- Java Development Kit (JDK)
- Node.js and npm
- Angular CLI
- MySQL Server
- Lombok: Java library to reduce boilerplate code, making development cleaner and more concise.
- Xampp
- Spring Tool Suite (STS): An integrated development environment for building, testing, and deploying Spring applications.
- PHPMyAdmin: Web-based tool for managing MySQL databases.
- Visual Studio Code
-
Fork then clone the repository
git clone https://github.com/<YOUR-GITHUB-USERNAME>/SpringBoot-Angular-TrainingCenter-Management.git
-
Set up the backend: Just open the project on STS, It will automatically built and compile, if anything just then search for Maven Install and click it.
-
Set up the frontend
cd angular-frontend npm install
If it didn't work for some reason, download and unzip node_modules.rar in unzip it in angular -frontend, here's the Link to download
-
Set up the database:
- Create a MySQL database, name it:
gestion_centre_formation
.
- Create a MySQL database, name it:
-
Run the application:
- Start the Spring Boot backend in STS.
- Start the Angular frontend
ng serve --open
.
This project operates under the MIT License. Refer to the LICENSE file for detailed information.
Your feedback and contributions are invaluable! Feel free to open issues, submit pull requests, or connect for discussions.
- Contact me in LinkedIn for questions.