Skip to content

Latest commit

 

History

History
424 lines (361 loc) · 17.2 KB

File metadata and controls

424 lines (361 loc) · 17.2 KB
Coding Factory Logo

🚀 Coding Factory Platform - Full-Stack Training Management System

Spring Boot Angular Microservices AI Powered Esprit School of Engineering

A Smart Training Center Platform with AI-Powered Recommendations and Intelligent Course Management

OverviewFeaturesArchitectureTechnologiesDirectory StructureGetting StartedModulesFAQTeamAcknowledgments


📋 Overview

Coding Factory Landing Page

Coding Factory Platform - Landing Page

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.

✨ Key Features

User Management
User Management
Authentication, role-based access control, and profile management
Training Management
Training Center
Course suggestions, enrollment, and intelligent recommendations
Event Management
Event Management
Organization, registration, and participant tracking
Evaluation System
Evaluation System
Assessment creation, grading, and performance analytics
Consulting Services
Consulting Services
Appointment scheduling and session tracking
PFE Space
PFE Space
Project management with AI-powered tools

🤖 AI-Powered Features

  • 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

🏗️ Architecture

Microservices Architecture

The platform follows a microservices architecture for scalability and maintainability:

🌐 Gateway Layer

  • API Gateway
  • Eureka Service Discovery
  • Config Server

🔧 Core Services

  • User Service
  • Training Service
  • Event Service
  • PFE Service

🧠 Intelligence Layer

  • Sentiment Analysis
  • AI Service
  • Recommendation Engine

🛠️ Technologies

🔙 Backend

Spring Java PostgreSQL Docker Python

  • Spring Boot - Core framework for microservices
  • Spring Security - Authentication and authorization
  • Spring Cloud - Service discovery, configuration, and API gateway
  • Spring Data JPA - Database interaction
  • PostgreSQL/MySQL - Primary databases
  • Docker - Service containerization
  • Hugging Face API - AI models for NLP tasks
  • Python Flask - Sentiment analysis service

🖥️ Frontend

Angular TypeScript Bootstrap HTML5 CSS3

  • Angular - Main frontend framework
  • TypeScript - Programming language
  • Bootstrap - Responsive UI components
  • PrimeNG - Advanced UI components
  • RxJS - Asynchronous data handling
  • HTML5/CSS3 - Markup and styling

� Directory Structure

Directory Structure
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

�🚀 Getting Started

Getting Started

Prerequisites

  • ☕ Java 17+
  • 📦 Node.js & Angular CLI
  • 🐳 Docker
  • 🗄️ PostgreSQL/MySQL
  • 🐍 Python 3.8+ (for sentiment analysis)
  • 📊 Maven

Installation

🔧 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

🔍 Module Details

👤 User Management


  • Authentication: Secure login with JWT tokens
  • Role Management: Admin, Trainer, Student, Consultant
  • Profile Settings: Customizable user profiles
  • Security: Password encryption and account recovery
User Management

📚 Training Center


  • 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
Training Center

🎓 PFE Space


  • 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
PFE Space

❓ FAQ

FAQ
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.

👥 Team

This project was developed by students from 4 SAE5:

Ameni ZoubeirMohamed Amine KalaiMouna ChokriOns FendouliBelkis SekriMootaz Chouchene

📞 Contact

You can reach us through our GitHub accounts.

🙏 Acknowledgments

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.

Built with ❤️ by the Coding Factory Team 4SAE5