Planning a study program at TUM can be overwhelming. Students often struggle with:
- Information Overload: Navigating through hundreds of courses across different departments and semesters
- Complex Prerequisites: Understanding which courses need to be completed before others
- Planning Uncertainty: Not knowing which courses align with their career goals or interests
- Time Management: Organizing courses efficiently across semesters to graduate on time
- Lack of Guidance: Limited access to personalized academic advice when needed
Our TUM Study Planner solves these challenges by providing an intelligent, all-in-one platform that guides students through their entire academic journey.
Getting started is effortless. Students create an account using their email and a password – that’s it. From there, they’re welcomed to explore the course catalog, create study plans and get AI-Powered assistance.
No more getting lost in PDFs or scattered links. Our platform offers a powerful, searchable catalog of all TUM courses (currently only MSc Information System courses), neatly organized by programs and departments. Whether you’re curious about Machine Learning, Algorithms, or Digital Ethics, students can search intuitively, filter by requirements, and dive into module details: credits, prerequisites, semesters offered, and more. The entire academic landscape is just a few clicks away.
Building a degree plan has never been easier. Students can design their own semester-by-semester roadmap, check off prerequisites, and monitor progress toward graduation – all visually and interactively. Multiple study plan scenarios? Absolutely. Real-time validation ensures every plan is realistic, rule-compliant, and tailored to each student’s goals.
Meet your 24/7 academic co-pilot. Our AI assistant understands TUM’s curriculum and gives intelligent answers in natural language: “What’s the difference between the two Machine Learning electives?” “What path should I take if I want to become a data scientist?” Backed by deep content analysis and confidence scores, the AI suggests optimal course sequences, explains prerequisites, and helps students plan smarter.
Deploy the complete application stack with a single command:
Prerequisite: Get the .env file from project team
# 1. Clone and navigate to project
git clone https://github.com/AET-DevOps25/team-stratton-oakmont.git
cd team-stratton-oakmont
# 2. Compose docker
docker network create stratton-oakmont-network
docker-compose -f docker-compose.monitoring.yml up -d
docker-compose -f docker-compose.test.yml up -d --build
# 3. Forward ports for weaviate (.kube config from rancher needed)
kubectl port-forward -n tum-study-planner svc/weaviate-vector-service 8000:8000 50051:50051
# Wait ~2 minutes for all services to start, then access:
# 🌐 Application: http://localhost:3000
The TUM Study Planner follows a modern microservices architecture with AI integration:
-
🎯 Use Case Diagram - User interactions and system capabilities
-
📋 Top-Level Architecture - Complete system overview and component relationships
-
📊 Analysis Object Model - Data models and business logic structure
- Frontend: React + TypeScript + Vite + Material-UI
- Backend: Spring Boot (Java) + FastAPI (Python)
- AI/ML: Open WebUI + LangChain + Weaviate Vector DB
- Database: PostgreSQL + Vector Database (Weaviate)
- Infrastructure: Docker + Docker Compose
- Monitoring: Prometheus + Grafana + Loki + Promtail
The system implements a sophisticated RAG architecture for intelligent course assistance:
- Natural Language Understanding: Parse complex student queries about academic planning
- Semantic Course Search: Vector-based similarity search across TUM course catalog
- Contextual Response Generation: GPT-powered responses with course-specific context
- Course Code Detection: Automatic identification and linking of course references
- Confidence Scoring: Reliability assessment for AI-generated responses
graph LR
A[Student Query] --> B[Query Processing]
B --> C[Vector Embedding<br/>OpenAI]
C --> D[Semantic Search<br/>Weaviate]
D --> E[Context Retrieval<br/>PostgreSQL]
E --> F[LLM Generation<br/>GPT-4]
F --> G[Response + Confidence<br/>+ Course Links]
- "What programming languages are used in IN0001?" → Identifies course, retrieves content, provides specific language information
- "I want to study machine learning. What courses should I take?" → Multi-course recommendations with prerequisites and sequences
- "What are the prerequisites for Advanced Algorithms?" → Prerequisite analysis with academic planning guidance
# Database Configuration
DB_STUDY_DATA_URL=jdbc:postgresql://localhost:5432/study_data
DB_STUDY_PLAN_URL=jdbc:postgresql://localhost:5432/study_plan
DB_USER_AUTH_URL=jdbc:postgresql://localhost:5432/user_auth
# Security
JWT_SECRET=your-256-bit-secret-key
# AI Configuration (Optional - for AI features)
OPENAI_API_KEY=your-openai-api-key
WEAVIATE_URL=http://localhost:8000
# Start databases only
docker-compose -f docker-compose.test.yml up -d postgres-study-data postgres-study-plan postgres-user-auth weaviate
# Start individual services for development
cd server
./gradlew :program-catalog-service:bootRun &
./gradlew :study-plan-service:bootRun &
./gradlew :ai-advisor-service:bootRun &
./gradlew :user-auth-service:bootRun &
cd ../server/llm-inference-service
pip install -r requirements.txt
python main.py &
cd ../../client
npm install && npm run dev
# Local production deployment
./scripts/deploy-with-monitoring.sh
# AWS deployment
./scripts/deploy.sh
# Cleanup
./scripts/destroy-with-monitoring.sh
Service | Local URL | API Documentation |
---|---|---|
Frontend | http://localhost:3000 | User Interface |
Program Catalog | http://localhost:8080 | Swagger UI |
Study Plan | http://localhost:8081 | Swagger UI |
AI Advisor | http://localhost:8082 | Swagger UI |
User Auth | http://localhost:8083 | Swagger UI |
LLM Service | http://localhost:8084 | FastAPI Auto-docs |
Monitoring | http://localhost:3001 | Grafana Dashboards |
-
Prometheus: Metrics collection from all services
-
Grafana: Real-time dashboards and alerting
-
Loki: Centralized log aggregation
-
Health Checks: Automated service health monitoring
-
📊 Monitoring Setup - Observability configuration
- 🔧 Backend Services Overview - Complete backend architecture and setup
- 📖 Program Catalog Service
- 📖 Study Plan Service
- 📖 AI Advisor Service
- 📖 User Auth Service
- 📖 LLM Inference Service
This project was developed by Team Stratton Oakmont as part of the DevOps course. Here's the clear mapping of student responsibilities:
Johannes Guegel spearheaded data acquisition through comprehensive tumonline website scraping and implemented the complete monitoring stack (prometheus, promtail, loki, grafana, alertmanager). He developed the complex study-plan-service that enables to create and configure a study plan and track progress.
Florian Seitz architected the DevOps pipeline, managing Kubernetes deployments, AWS workflows, Docker containerization, and GitHub Actions CI/CD. He created the intelligent AI course chat system using Weaviate vector databases and LangChain integration.
Nikolas Lethaus built the core backend services architecture, implementing secure user authentication and designing the intuitive purple-themed frontend interface. He developed comprehensive API documentation, service testing frameworks, and the complete program catalog system.
- Docker & Docker Compose
- Java 17+ (for local development)
- Python 3.9+ (for AI service development)
- Node.js 18+ (for frontend development)
MIT License - See LICENSE file for details.
Team Stratton Oakmont - DevOps Engineering Course, Technical University Munich