Team: git-it-together
Authors: Achraf Labidi (@GravityDarkLab) x Mahdi Bayouli (@mahdibayouli)
Tutor: Sindi Buklaji
Description: SkillForge is an innovative AI-powered learning platform that revolutionizes how people acquire new skills and knowledge. Our mission is to make quality education accessible, personalized, and engaging for everyone, regardless of their location or background.
- π Status
- π Live Application Links
- π Internal Project Timeline
- π Problem Statement
- π§© System Overview and Architecture
- π Requirements
- π§ Features
- π οΈ Tech Stack
- π¦ Setup Instructions
- π₯ Team Roles
- π License
π¨ Build & Test | ||
|
|
|
Client | Server | GenAI |
π³ Docker | ||
|
||
βΈοΈ Kubernetes Deployment | ||
|
||
βοΈ AWS Deployment | ||
|
Service | Description | URL |
---|---|---|
π― Main Application | SkillForge.ai Frontend | https://skillforge.student.k8s.aet.cit.tum.de |
π API Gateway | Backend API Services | https://api.skillforge.student.k8s.aet.cit.tum.de |
π€ GenAI | GenAI Service | https://api.genai.skillforge.student.k8s.aet.cit.tum.de |
π Prometheus | Metrics & Monitoring | https://prometheus.skillforge.student.k8s.aet.cit.tum.de |
π Grafana | Dashboards & Analytics | https://grafana.skillforge.student.k8s.aet.cit.tum.de |
π¨ Alert Manager | Alerts & Notifications | https://alertmanager.skillforge.student.k8s.aet.cit.tum.de |
π§ MailHog | Email Testing Tool | https://mailhog.skillforge.student.k8s.aet.cit.tum.de |
See the weekly progress document for a detailed timeline of the project.
See the problem statement document for a detailed description of the problem statement.
See the system overview and architecture document for a detailed description of the system overview and architecture.
For the Server, See the README file for a detailed description of the server. For the Client, See the README file for a detailed description of the client. For the GenAI, See the README file for a detailed description of the GenAI.
- Docker Desktop (with Docker Compose) Required for running and orchestrating all local containers
- Git Required for cloning the repository and managing version control
- Node.js (v18+ recommended) & npm or Yarn For building and running the frontend locally with hot-reload
- Java JDK 21+ For building and running the backend services locally
- Python (v3.10+ recommended) For running the GenAI service locally and database seeding
- MongoDB For local development and testing (Docker version is used by default)
- Weaviate For local development and testing (Docker version is used by default)
- OpenAI API Key Required for using GenAI features with OpenAI models
- LM Studio (Optional) For running local language models instead of using OpenAI
- Terraform For provisioning cloud infrastructure (Infrastructure as Code)
- Ansible For automating configuration and server setup
- kubectl For managing Kubernetes deployments
- Helm For managing Kubernetes deployments and Helm charts
- Helmfile For managing Helm charts and releases
- AWS CLI For managing AWS resources
- Prometheus For metrics collection and monitoring
- Grafana For dashboards and analytics
π‘ Note: Most local development tasks require only Docker and Git. Other tools are needed for infrastructure automation, cloud deployment, or advanced development scenarios.
Built with cutting-edge technologies and modern development practices, SkillForge combines the power of artificial intelligence with comprehensive learning management to create a truly personalized educational experience. Our platform adapts to each learner's pace, preferences, and goals, ensuring maximum engagement and retention.
-
β¨ AI-Curated Course Generation Create and explore dynamic courses powered by artificial intelligence.
-
π¬ Interactive AI Chat Assistant Get instant help and learning guidance from an intelligent AI tutor.
-
π§ Personalized Learning Paths Customized journeys tailored to your skills, pace, and goals.
-
π Achievement & Badge System Unlock milestones and collect badges as you learn.
-
π Course Bookmarking Save and organize your favorite courses for quick access.
-
β‘οΈ Real-time Progress Updates Track your learning progress instantly, every step of the way.
-
π Global Learning Community (Coming Soon) Connect, collaborate, and grow with learners worldwide.
-
πΊ Multi-language Support (Coming Soon) Learn in your preferred language.
-
π Advanced Analytics Dashboard (Coming Soon) Dive deep into your learning stats and trends.
-
π» Interactive Code Playground (Coming Soon) Practice coding live within the platform.
-
π Certification Programs (Coming Soon) Earn certificates to showcase your achievements.
- π¨ Frontend: React, Vite, Tailwind CSS, TypeScript
- π Backend: Java, Spring Boot
- πΎ Database: MongoDB, Weaviate
- π€ GenAI: LangChain, OpenAI, Python
- βοΈ Infrastructure: Docker, Docker Compose, Terraform, Ansible, Kubernetes (k8s), Helm, Helmfile
- π Monitoring: Prometheus, Grafana
- ποΈ Version Control: Git, GitHub
- βοΈ Cloud Provider: AWS (Amazon Web Services), AET Cluster on Rancher
- Docker Desktop (includes Docker Compose) β Download here
- Git
- (Linux only) Follow these steps to install Docker Engine
git clone https://github.com/AET-DevOps25/team-git-it-together.git
cd team-git-it-together
- Copy the example environment file to
.env
in the root directory:- macOS/Linux:
./copy-env.sh .env.dev.example .env
- Windows (PowerShell):
.\copy-env.ps1 .env.dev.example .env
- macOS/Linux:
- Edit
.env
and fill in all required secrets and configuration values. - Minimal example:
MONGODB_DATABASE=skillforge_dev MONGODB_USERNAME=dev_user MONGODB_PASSWORD=dev_password JWT_SECRET=<secret-key> JWT_EXPIRATION_MS=3600000 VITE_APP_VERSION=1.0.0 VITE_API_VERSION=v1 GENAI_APP_VERSION=1.0.0 CORS_ALLOW_ORIGINS=* LLM_PROVIDER=openai OPENAI_API_BASE=https://api.openai.com/v1 OPENAI_API_KEY=<secret-key> OPENAI_MODEL=gpt-4o-mini
- Default Ports:
Service Port mongo 27017 weaviate-db 8080 server-gateway 8081 user-service 8082 course-service 8083 genai 8888 mailhog 8025 prometheus 9090 grafana 3000 alertmanager 9093 client 3000
docker compose up --build
- To run in detached/background mode:
docker compose up --build -d
cd seed
python seed_all.py
- This will create a demo user and seed the database with sample courses.
- Frontend: http://localhost:3000 or http://client.localhost
- API Gateway: http://localhost:8081/api/v1/health or http://server.localhost
- GenAI Service: http://localhost:8888/api/v1/health or http://genai.localhost
Tip: For pretty URLs like
client.localhost
,server.localhost
, andgenai.localhost
, add this to your/etc/hosts
file:echo "127.0.0.1 client.localhost server.localhost genai.localhost" | sudo tee -a /etc/hosts
To run a specific service (e.g., client, server, genai) on its own, see the README in that service's directory for detailed instructions:
-
To stop all running containers:
docker compose down
-
To stop and remove all containers, networks, and named volumes created by
up
, including orphans:docker compose down --remove-orphans --volumes
Note: This will perform a hard reset, removing all data in volumes. Perform this only if you want to reset your local environment.
-
Check logs for any service:
docker-compose logs <service-name>
Listed services include:
client
server-gateway
user-service
course-service
weaviate-db
genai
mongo
-
See running containers:
docker ps
-
If you change
.env
, rebuild containers:docker-compose up --build
-
To Try the production setup locally:
-
Create a
.env.prod
file based on.env.prod.example
and fill in the required values. -
Run the production setup with:
docker compose --env-file .env.prod -f docker-compose.local.yaml up --build -d
-
To stop and delete all containers, networks, and volumes of the production setup:
docker compose --env-file .env.prod -f docker-compose.local.yaml down --volumes --remove-orphans
-
- Backend Development - Java Spring Boot services (Gateway, User Service, Course Service)
- Frontend Development - React/TypeScript application with Vite and Tailwind CSS
- Deployment & Infrastructure - Docker containerization, Kubernetes deployment, AWS deployment, CI/CD pipelines
- GenAI Development - Python-based AI services with LangChain and OpenAI integration
- Monitoring & Observability - Prometheus, Grafana, Alert Manager setup and configuration
- Deployment & Infrastructure - Kubernetes deployment and monitoring stack
MIT License β see LICENSE for details.