SkillForge is a next-generation Learning Management System (LMS) designed to bridge the gap between traditional learning and AI-driven assessment. It provides a robust ecosystem for Instructors to craft course content, Students to learn and get certified via AI interviews, and Admins to oversee platform metrics.
Built with a modern React (Vite) frontend and a scalable Spring Boot backend.
- Course Management: Create comprehensive courses with organized sections and topics.
- Rich Media: Upload learning materials (PDFs, Videos) securely via AWS S3.
- Hybrid Assessments: Create manual quizzes or utilize Generative AI to automatically create quizzes based on course content.
- Publication Workflow: Draft, review, and publish courses to the marketplace.
- Progress Tracking: Visual dashboards to track course completion and quiz scores.
- Interactive Learning: Clean, distraction-free learning interface with 3D elements.
- AI Subjective Interview: A unique feature where students face an AI-driven written interview upon course completion. The AI evaluates deep understanding rather than just multiple-choice answers.
- Certification: Automated certificate generation upon passing the AI Interview.
- Platform Dashboard: High-level metrics, user trends, and enrollment statistics.
- User Management: Oversee instructors and students.
- System Logs: Monitor platform health and activities.
- RBAC (Role-Based Access Control): Strict separation of duties for Admin, Instructor, and Student.
- Secure Authentication: JWT (JSON Web Token) implementation with State Management.
- Data Integrity: Robust validation and error handling.
- Framework: React 18 with TypeScript
- Build Tool: Vite
- Styling: Tailwind CSS, Shadcn/UI, Lucide React
- 3D Graphics: Three.js (@react-three/fiber, @react-three/drei)
- State & Data: React Query (@tanstack/react-query), React Hook Form, Zod
- HTTP Client: Axios
- Framework: Spring Boot 3.5.7
- Language: Java 21
- Database: MongoDB
- Security: Spring Security, JWT (jjwt)
- Storage: AWS S3 SDK
- Documentation: OpenApi (Swagger UI)
- Utilities: ModelMapper, Lombok, Jackson
jasjeev013-skillforge-e-learning-platform/
├── client/ # React Frontend application
│ ├── src/
│ │ ├── components/ # Reusable UI components (Shadcn, 3D Hero)
│ │ ├── pages/ # Application views (Dashboards, Course Learn)
│ │ ├── services/ # API integration (Auth, Course, AI services)
│ │ └── hooks/ # Custom React hooks
│ └── ...
└── server/ # Spring Boot Backend application
├── src/main/java/com/skillforge/platform/
│ ├── config/ # Security, S3, and Swagger configs
│ ├── controllers/ # REST API Endpoints
│ ├── models/ # MongoDB Documents
│ ├── services/ # Business Logic (AI, Quiz, Auth)
│ └── payloads/ # DTOs (Data Transfer Objects)
└── ...
- Node.js (v18+)
- Java JDK 21
- MongoDB (Local or Atlas)
- Maven
Navigate to the server directory:
cd serverConfigure your environment variables in src/main/resources/application.properties (or create an application.yml):
spring.data.mongodb.uri=mongodb://localhost:27017/skillforge
spring.data.mongodb.database=skillforge
jwt.secret=YOUR_SUPER_SECRET_KEY_HERE
cloud.aws.credentials.access-key=YOUR_AWS_ACCESS_KEY
cloud.aws.credentials.secret-key=YOUR_AWS_SECRET_KEY
cloud.aws.region.static=us-east-1
# AI Service Configuration
ai.api.key=YOUR_AI_PROVIDER_KEYBuild and run the application:
./mvnw spring-boot:runThe server will start on http://localhost:8080.
Open a new terminal and navigate to the client directory:
cd clientInstall dependencies:
npm installCreate a .env file in the client root:
VITE_API_URL=http://localhost:8080/apiRun the development server:
npm run devThe client will start on http://localhost:5173.
Once the backend is running, you can explore the full REST API documentation via Swagger UI:
👉 http://localhost:8080/swagger-ui/index.html
(Add screenshots of your application here)
| Landing Page | Student Dashboard |
|---|---|
![]() |
![]() |
| Instructor Dashboard | Admin Dashboard |
|---|---|
![]() |
![]() |
| Course Interface | AI Interview |
|---|---|
![]() |
![]() |
Contributions are welcome! Please follow these steps:
- Fork the repository.
- Create a feature branch (
git checkout -b feature/AmazingFeature). - Commit your changes (
git commit -m 'Add some AmazingFeature'). - Push to the branch (
git push origin feature/AmazingFeature). - Open a Pull Request.
Distributed under the MIT License. See LICENSE for more information.
Jasjeev
- GitHub: jasjeev013
- Project Link: Skillforge-E-Learning-Platform





