Overview β’ Features β’ Architecture β’ Technologies β’ Directory Structure β’ Getting Started β’ Modules β’ FAQ β’ Team β’ Acknowledgments
Coding Factory is an innovative training center platform developed at #Esprit_school_of_engineering that suggests personalized training courses to users. Built with a modern microservices architecture, it helps students find the most relevant programming and technology courses based on their interests and career goals.
The platform's main role is to recommend appropriate trainings using intelligent features like sentiment analysis on course reviews. It also manages users, events, evaluations, consulting services, and final projects (PFE - Final Year Project) to provide a complete educational experience.
This project was developed as part of the curriculum at Esprit School of Engineering to create a full-stack application that demonstrates real-world software engineering practices and emerging technologies in AI and web development.
- CV Analysis & Project Matching - Automatically match students to projects based on skills
- Cover Letter Generation - AI-generated personalized cover letters
- Plagiarism Detection - Ensure originality in student submissions
- AI Chatbot - Intelligent assistant for project-related questions
The platform follows a microservices architecture for scalability and maintainability:
|
|
|
|
|
CodingFactory-WebSite/
βββ Backend/
β βββ Microservices/
β β βββ ApiGateway/ # API Gateway service
β β βββ ConfigServer/ # Configuration server
β β βββ EurekaServer/ # Service discovery
β β βββ Gestion_Evenement/ # Event management service
β β βββ Gestion_Formation/ # Training management service
β β βββ Gestion_User/ # User management service
β β βββ PFESpace/ # Final year project space service
β β βββ SentimentAnalysis/ # Python sentiment analysis service
β βββ docker-compose.yml # Docker configuration
βββ Frontend/
β βββ coding_factory_front/
β βββ src/
β β βββ app/
β β β βββ components/ # Reusable UI components
β β β βββ models/ # Data models and interfaces
β β β βββ services/ # API services and business logic
β β β βββ shared/ # Shared utilities and helpers
β β β βββ views/ # Page components
β β βββ assets/ # Static assets and images
β β βββ environments/ # Environment configurations
β βββ package.json # Frontend dependencies
βββ README.md # Project documentation
|
|
|
π§ Backend Setup
# Clone the repository
git clone https://github.com/your-username/coding-factory-platform.git
# Navigate to backend directory
cd Backend
# Build the project
mvn clean install
# Start the services
docker-compose up
π‘ Tip: Make sure Docker is running before starting the services.
π₯οΈ Frontend Setup
# Navigate to frontend directory
cd Frontend/coding_factory_front
# Install dependencies
npm install
# Start the development server
ng serve
π‘ Tip: The application will be available at http://localhost:4200
π§ Sentiment Analysis Service Setup
# Navigate to sentiment analysis directory
cd Backend/Microservices/SentimentAnalysis
# Install dependencies
pip install -r requirements.txt
# Start the service
python sentiment_api.py
π‘ Tip: The service will be available at http://localhost:5000
- Authentication: Secure login with JWT tokens
- Role Management: Admin, Trainer, Student, Consultant
- Profile Settings: Customizable user profiles
- Security: Password encryption and account recovery
- Course Suggestions: Personalized training recommendations
- Enrollment: Easy registration for suggested courses
- Smart Recommendations: Based on sentiment analysis of reviews
- Comment Filtering: Find the most positively reviewed trainings
- Career Path Guidance: Courses aligned with career goals
- Project Management: Creation, assignment, and tracking
- AI Matching: CV analysis and project matching with SBERT
- Document Generation: AI-powered cover letter creation
- Plagiarism Detection: Ensure originality in submissions
- AI Assistant: Chatbot for project-related questions
- Admin Management: Comprehensive admin dashboard for platform oversight
How does the recommendation system work?
The system uses sentiment analysis on training comments to prioritize courses with positive feedback. It employs either XGBoost or NLTK's VADER analyzer to classify comments and rank courses accordingly. This creates a personalized learning experience based on what other students have found most valuable.
Can I use the platform without the AI features?
Yes, all AI features are optional and the platform functions fully without them. They simply enhance the user experience when enabled. The core functionality of user management, training courses, and event organization works independently of the AI components.
How secure is the user data?
The platform implements Spring Security with JWT authentication, role-based access control, and secure password storage to protect user data. All sensitive information is encrypted, and the system follows industry best practices for data protection and privacy.
Is the platform mobile-friendly?
Yes, the Angular frontend is fully responsive and works on mobile devices, tablets, and desktops. Users can access all features from any device with a modern web browser.
What can administrators do in the platform?
Administrators manage the entire platform through a centralized dashboard. They handle user accounts, create and monitor training courses, manage events, oversee PFE projects, access analytics, and configure system settings. The admin dashboard provides quick access to all management functions.
This project was developed by students from 4 SAE5:
Ameni Zoubeir β’ Mohamed Amine Kalai β’ Mouna Chokri β’ Ons Fendouli β’ Belkis Sekri β’ Mootaz Chouchene
You can reach us through our GitHub accounts.
This project was completed under the guidance of professors at Esprit School of Engineering.
Special thanks to all mentors and advisors who contributed to the success of this project.