DeutschLernen/docs/ROADMAP.md
Lasse Rune Hansen 76e8af4987 Add complete solution: documentation, frontend, and project files
- Add comprehensive documentation in docs/ (architecture, features, roadmap)
- Add german-app-frontend with Vite, TypeScript, ESLint configuration
- Add AGENTS.md and .gitignore

Generated by Mistral Vibe.
Co-Authored-By: Mistral Vibe <vibe@mistral.ai>
2026-05-31 18:20:53 +02:00

546 lines
19 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# DeutschLernen Development Roadmap
This document provides a comprehensive **development roadmap** for the DeutschLernen project, based on the feature plans in `docs/features/`. It outlines the implementation phases, timelines, resource allocation, and milestones for delivering the complete German learning application.
---
## 🎯 Project Overview
**DeutschLernen** is a comprehensive German language learning web application with:
- Structured lessons following CEFR levels (A1-C1)
- AI-powered features (story generation, speech recognition, text-to-speech)
- Interactive exercises and quizzes
- Gamification (points, badges, streaks)
- Progress tracking and analytics
**Target Users:** Self-learners of German at all levels (A1C1)
**Technology Stack:** .NET 9.0 (Backend) + React 19 + TypeScript (Frontend) + PostgreSQL + AI Services
---
## 🗺️ Implementation Phases
The project is divided into **4 phases** based on dependencies and priority:
---
## Phase 1: Foundation 🏗️
**Duration:** 2 weeks | **Total Hours:** 30-42h | **Priority:** Critical
### Objective
Establish the technical foundation for the entire application, including backend project, database, and authentication system.
### Features
| # | Feature | Description | Hours | Status | Dependencies |
|---|---------|-------------|-------|--------|--------------|
| 1.1 | [Infrastructure Setup](features/infrastructure-setup.md) | .NET project, PostgreSQL, Docker, CI/CD | 10-14h | ⏳ Planned | None |
| 1.2 | [User Authentication](features/user-authentication.md) | JWT-based auth with ASP.NET Core Identity | 4-6h | ⏳ Planned | 1.1 |
### Deliverables
- ✅ Working .NET 9.0 backend project
- ✅ PostgreSQL database with schema
- ✅ Docker containers for all services
- ✅ GitHub Actions CI/CD pipeline
- ✅ Authentication endpoints (register, login, logout)
- ✅ JWT token generation and validation
- ✅ Development environment setup guide
### Success Criteria
- Backend project builds and runs successfully
- Database is accessible and migrations work
- Docker Compose spins up all services
- CI/CD pipeline passes on push
- Authentication flow works end-to-end
### Week 1
| Day | Developer | Tasks | Hours |
|-----|-----------|-------|-------|
| 1 | Backend | Initialize .NET project, configure appsettings | 4 |
| 1 | Backend | Set up Swagger/OpenAPI, CORS, logging | 2 |
| 2 | Backend | Configure PostgreSQL, create initial schema | 3 |
| 2 | Backend | Set up EF Core, create first migration | 2 |
| 3 | Backend | Create Dockerfile for backend | 2 |
| 3 | DevOps | Create docker-compose.yml | 2 |
| 4 | Backend | Create GitHub Actions workflow | 3 |
| 4 | Backend | Test complete infrastructure | 2 |
| 5 | Backend | Start User Authentication feature | 4 |
### Week 2
| Day | Developer | Tasks | Hours |
|-----|-----------|-------|-------|
| 6 | Backend | Create User entity and DTOs | 3 |
| 6 | Backend | Configure ASP.NET Core Identity | 2 |
| 7 | Backend | Create AuthService with JWT | 3 |
| 7 | Backend | Create AuthController endpoints | 2 |
| 8 | Backend | Implement token validation middleware | 2 |
| 8 | Backend | Add authorization to endpoints | 2 |
| 9 | Backend | Write unit tests for AuthService | 2 |
| 9 | Backend | Write integration tests for AuthController | 2 |
| 10 | Backend | Test authentication flow end-to-end | 2 |
| 10 | Backend | Finalize and merge Phase 1 | 2 |
---
## Phase 2: Core Backend 🎯
**Duration:** 2 weeks | **Total Hours:** 42-58h | **Priority:** Critical
### Objective
Implement the core backend functionality, including lesson management, AI services integration, vocabulary system, and quiz system.
### Features
| # | Feature | Description | Hours | Status | Dependencies |
|---|---------|-------------|-------|--------|--------------|
| 2.1 | [Lesson Management](features/lesson-management.md) | Lessons, levels, progress tracking | 10-16h | ⏳ Planned | Phase 1 |
| 2.2 | [AI Services](features/ai-services.md) | Mistral, Vosk, Coqui TTS integration | 10-16h | ⏳ Planned | Phase 1 |
| 2.3 | [Vocabulary System](features/vocabulary-system.md) | Word storage, audio, import | 8-12h | ⏳ Planned | Phase 1, 2.1 |
| 2.4 | [Quiz System](features/quiz-system.md) | Multiple question types, scoring | 6-10h | ⏳ Planned | Phase 1, 2.1 |
### Deliverables
- ✅ Complete CEFR level and lesson management
- ✅ User progress tracking with sequential unlocking
- ✅ Mistral-Medium API integration for story generation
- ✅ Vosk speech recognition integration
- ✅ Coqui TTS integration for audio generation
- ✅ Vocabulary CRUD with article tracking
- ✅ Bulk vocabulary import from Goethe/DW
- ✅ Quiz CRUD with 4 question types
- ✅ Quiz scoring and pass/fail determination
- ✅ Progress tracking on quiz completion
### Success Criteria
- All lesson content can be managed
- AI services generate stories, recognize speech, and generate audio
- Vocabulary system with audio works end-to-end
- Quiz system with all question types works
- Progress tracking updates correctly
### Week 3
| Day | Developer | Tasks | Hours | Feature |
|-----|-----------|-------|-------|---------|
| 11 | Backend | Create Level/Lesson entities | 3 | 2.1 |
| 11 | Backend | Create UserProgress entity | 2 | 2.1 |
| 12 | Backend | Create repositories | 3 | 2.1 |
| 12 | Backend | Create services | 3 | 2.1 |
| 13 | Backend | Create controllers | 2 | 2.1 |
| 13 | Backend | Implement unlocking logic | 2 | 2.1 |
| 14 | Backend | Write tests for Lesson Mgmt | 3 | 2.1 |
| 14 | Backend | Start AI Services | 2 | 2.2 |
### Week 4
| Day | Developer | Tasks | Hours | Feature |
|-----|-----------|-------|-------|---------|
| 15 | Backend | Configure Mistral API client | 3 | 2.2 |
| 15 | Backend | Implement retry/rate limiting | 2 | 2.2 |
| 16 | Backend | Set up Vosk Python environment | 3 | 2.2 |
| 16 | Backend | Create VoskService | 3 | 2.2 |
| 17 | Backend | Set up Coqui TTS environment | 2 | 2.2 |
| 17 | Backend | Create TtsService | 3 | 2.2 |
| 18 | Backend | Create health checks | 2 | 2.2 |
| 18 | Backend | Test AI Services | 2 | 2.2 |
| 19 | Backend | Start Vocabulary System | 4 | 2.3 |
| 20 | Backend | Start Quiz System | 4 | 2.4 |
---
## Phase 3: Content & Features 📚
**Duration:** 2 weeks | **Total Hours:** 30-42h | **Priority:** High
### Objective
Implement the content management features (story integration, gamification) that build on the core backend.
### Features
| # | Feature | Description | Hours | Status | Dependencies |
|---|---------|-------------|-------|--------|--------------|
| 3.1 | [Story Integration](features/story-integration.md) | AI-generated stories with audio | 8-12h | ⏳ Planned | Phase 2 |
| 3.2 | [Gamification](features/gamification.md) | Points, badges, streaks | 6-8h | ⏳ Planned | Phase 2 |
### Deliverables
- ✅ Story generation per level using Mistral
- ✅ Story segmentation per lesson
- ✅ Story audio generation using Coqui TTS
- ✅ Sequential story unlocking with lesson completion
- ✅ Word click-to-translate functionality
- ✅ Points system for lessons and quizzes
- ✅ Badge system with automatic awarding
- ✅ Daily streak tracking
- ✅ User dashboard with gamification display
### Success Criteria
- Stories generate correctly with level-appropriate vocabulary
- Story audio is clear and accessible
- Stories unlock sequentially as users complete lessons
- Points and badges are awarded correctly
- Streaks track daily activity accurately
### Week 5
| Day | Developer | Tasks | Hours | Feature |
|-----|-----------|-------|-------|---------|
| 21 | Backend | Create StorySegment entity | 2 | 3.1 |
| 21 | Backend | Create StoryService | 3 | 3.1 |
| 22 | Backend | Create StoryGenerationService | 3 | 3.1 |
| 22 | Backend | Implement Mistral integration | 2 | 3.1 |
| 23 | Backend | Create StoryController | 2 | 3.1 |
| 23 | Backend | Generate audio for stories | 3 | 3.1 |
| 24 | Backend | Test Story Integration | 2 | 3.1 |
| 24 | Backend | Start Gamification | 2 | 3.2 |
### Week 6
| Day | Developer | Tasks | Hours | Feature |
|-----|-----------|-------|-------|---------|
| 25 | Backend | Update User entity with gamification fields | 2 | 3.2 |
| 25 | Backend | Create Badge/UserBadge entities | 2 | 3.2 |
| 26 | Backend | Create PointsService | 2 | 3.2 |
| 26 | Backend | Create BadgeService | 3 | 3.2 |
| 27 | Backend | Create StreakService | 2 | 3.2 |
| 27 | Backend | Create GamificationController | 2 | 3.2 |
| 28 | Backend | Write tests for Gamification | 2 | 3.2 |
| 28 | Backend | Finalize Phase 3 | 2 | Both |
---
## Phase 4: Frontend 🎨
**Duration:** 2 weeks | **Total Hours:** 10-16h | **Priority:** High
### Objective
Implement the complete React + TypeScript frontend application with all UI components, pages, and services.
### Features
| # | Feature | Description | Hours | Status | Dependencies |
|---|---------|-------------|-------|--------|--------------|
| 4.1 | [Frontend UI](features/frontend-ui.md) | Complete React frontend | 10-16h | ⏳ Planned | Phase 2-3 |
### Deliverables
- ✅ React 19 + TypeScript + Vite project setup
- ✅ Tailwind CSS styling
- ✅ All shared components (Button, Input, Card, AudioPlayer, Recorder, Modal, Notification)
- ✅ Authentication pages (Login, Register, Profile)
- ✅ Dashboard page with progress tracking
- ✅ Lesson pages with all tabs (Vocabulary, Grammar, Story, Reading, Listening, Speaking, Writing, Quiz)
- ✅ Quiz pages with all question types
- ✅ Story pages with audio playback
- ✅ Practice pages for speaking/writing
- ✅ API client with Axios
- ✅ Authentication context and protected routes
- ✅ State management with Zustand
- ✅ Responsive design for mobile, tablet, desktop
- ✅ Accessibility compliance (WCAG 2.1 AA)
### Success Criteria
- All pages load without errors
- All components render correctly
- Authentication flow works end-to-end
- Audio playback and recording work on all supported browsers
- Responsive design works on all screen sizes
- Application is accessible to screen readers and keyboard users
### Week 7
| Day | Developer | Tasks | Hours | Feature |
|-----|-----------|-------|-------|---------|
| 29 | Frontend | Initialize Vite + React + TypeScript project | 3 | 4.1 |
| 29 | Frontend | Install dependencies (Router, Tailwind, Axios, Zustand) | 2 | 4.1 |
| 30 | Frontend | Create API client with interceptors | 2 | 4.1 |
| 30 | Frontend | Create AuthContext and protected routes | 3 | 4.1 |
| 31 | Frontend | Create Layout components (Header, Footer) | 3 | 4.1 |
| 31 | Frontend | Create shared UI components | 3 | 4.1 |
| 32 | Frontend | Create Auth pages (Login, Register, Profile) | 4 | 4.1 |
### Week 8
| Day | Developer | Tasks | Hours | Feature |
|-----|-----------|-------|-------|---------|
| 33 | Frontend | Create Dashboard page | 3 | 4.1 |
| 33 | Frontend | Create Lesson page with tabs | 4 | 4.1 |
| 34 | Frontend | Create Quiz pages and components | 4 | 4.1 |
| 34 | Frontend | Create Story pages and components | 3 | 4.1 |
| 35 | Frontend | Create Practice pages | 3 | 4.1 |
| 35 | Frontend | Add loading states and error handling | 2 | 4.1 |
| 36 | Frontend | Responsive design tweaks | 3 | 4.1 |
| 37 | Frontend | Accessibility audit | 2 | 4.1 |
| 38 | Frontend | Performance optimization | 2 | 4.1 |
| 38 | Frontend | Final testing and polish | 2 | 4.1 |
---
## 📅 Project Timeline Summary
| Phase | Duration | Hours | Features | Status |
|-------|----------|-------|----------|--------|
| Phase 1: Foundation | 2 weeks | 30-42h | 2 | ⏳ Planned |
| Phase 2: Core Backend | 2 weeks | 42-58h | 4 | ⏳ Planned |
| Phase 3: Content & Features | 2 weeks | 30-42h | 2 | ⏳ Planned |
| Phase 4: Frontend | 2 weeks | 10-16h | 1 | ⏳ Planned |
| **Total** | **8 weeks** | **112-158h** | **9** | ⏳ Planned |
**For a small team (2-3 developers):** ~4-5 weeks
**For a solo developer:** ~8-10 weeks
**For a larger team (4+ developers):** ~3-4 weeks
---
## 📊 Resource Allocation Scenarios
### Scenario 1: Solo Developer (8-10 weeks)
```
Week 1-2: Phase 1 - Foundation (30-42h)
Week 3-4: Phase 2 - Core Backend (42-58h)
Week 5-6: Phase 3 - Content & Features (30-42h)
Week 7-8: Phase 4 - Frontend (10-16h)
Week 9-10: Testing, Polish, Bug Fixes (20h)
```
**Total:** ~152-178 hours across 10 weeks
### Scenario 2: Team of 2 (4-5 weeks)
**Developer A (Backend Focus):**
- Week 1: Infrastructure (14h) + Auth (4h) = 18h
- Week 2: Lesson Mgmt (14h) + AI Services (8h) = 22h
- Week 3: Vocabulary (10h) + Quiz (8h) = 18h
- Week 4: Story (10h) + Gamification (6h) = 16h
- Week 5: Frontend support + Testing = 16h
**Developer B (Full-Stack):**
- Week 1: Auth (2h) + Lesson Mgmt (2h) = 4h
- Week 2: AI Services (8h) + Vocabulary (2h) = 10h
- Week 3: Quiz (2h) + Story (2h) + Gamification (2h) = 6h
- Week 4: Frontend (16h) = 16h
- Week 5: Frontend (16h) + Testing = 16h
**Total:** ~142-158 hours across 5 weeks
### Scenario 3: Team of 3 (3-4 weeks)
**Developer A (Backend Lead):**
- Infrastructure, Auth, Lesson Mgmt, AI Services
**Developer B (Backend):**
- Vocabulary, Quiz, Story, Gamification
**Developer C (Frontend):**
- Wait for Phase 2, then build entire frontend
**Total:** ~112-158 hours across 3-4 weeks
---
## 🎯 Milestones & Checkpoints
### Milestone 1: Foundation Complete (End of Week 2)
**Success Metrics:**
- [ ] Backend project builds and runs
- [ ] Database is configured and accessible
- [ ] Docker containers work
- [ ] CI/CD pipeline passes
- [ ] Authentication works end-to-end
- [ ] Can start any Phase 2 feature
**Exit Criteria:**
- All Phase 1 acceptance criteria met
- All Phase 1 tests passing
- All Phase 1 documentation complete
### Milestone 2: Core Backend Complete (End of Week 4)
**Success Metrics:**
- [ ] Lesson management works
- [ ] AI services integrate successfully
- [ ] Vocabulary system works with audio
- [ ] Quiz system works with all question types
- [ ] Progress tracking updates correctly
- [ ] Can start any Phase 3 feature
**Exit Criteria:**
- All Phase 2 acceptance criteria met
- All Phase 2 tests passing
- All Phase 2 documentation complete
### Milestone 3: Content & Features Complete (End of Week 6)
**Success Metrics:**
- [ ] Story generation and audio works
- [ ] Stories unlock sequentially
- [ ] Gamification (points, badges, streaks) works
- [ ] Can start Frontend implementation
**Exit Criteria:**
- All Phase 3 acceptance criteria met
- All Phase 3 tests passing
- All Phase 3 documentation complete
### Milestone 4: Frontend Complete (End of Week 8)
**Success Metrics:**
- [ ] All pages render without errors
- [ ] All components work correctly
- [ ] Authentication flow works
- [ ] Audio playback and recording works
- [ ] Responsive design works
- [ ] Application is production-ready
**Exit Criteria:**
- All Phase 4 acceptance criteria met
- All Phase 4 tests passing
- All Phase 4 documentation complete
### Milestone 5: Production Deployment (End of Week 9-10)
**Success Metrics:**
- [ ] All features deployed to production
- [ ] Performance meets targets
- [ ] Security review complete
- [ ] User testing successful
- [ ] Bug count is acceptable
**Exit Criteria:**
- Application is live and accessible
- Users can register, login, and use all features
- No critical bugs
- Performance is acceptable
---
## 🚨 Critical Path Analysis
The **critical path** (longest sequence of dependent tasks) is:
```
Infrastructure Setup (10-14h)
User Authentication (4-6h)
Lesson Management (10-16h)
Vocabulary System (8-12h) + Quiz System (6-10h) [Parallel]
Story Integration (8-12h) + Gamification (6-8h) [Parallel]
Frontend UI (10-16h)
```
**Total Critical Path: 56-82 hours** (~7-10 days)
This means the **minimum project duration** is determined by this path, even with parallel development on other features.
---
## 📈 Risk Management
### Top 5 Project Risks
| # | Risk | Likelihood | Impact | Mitigation | Owner | Phase |
|---|------|------------|--------|------------|-------|-------|
| 1 | Python-.NET integration failures | High | High | Use Process.Start initially, implement proper error handling | Backend | 2 |
| 2 | AI service performance issues | High | Medium | Implement async processing, rate limiting, caching | Backend | 2 |
| 3 | Vosk/Coqui model compatibility | Medium | High | Test with models before implementation, have fallbacks | Backend | 2 |
| 4 | Mistral API costs exceed budget | Medium | High | Monitor usage, cache aggressively, set budget alerts | Product | 2 |
| 5 | Scope creep (adding more features) | Medium | Medium | Stick to MVP scope, defer nice-to-haves | PM | All |
### Risk Monitoring
**Daily:** Check AI service health and costs
**Weekly:** Review progress against roadmap
**Phase End:** Conduct risk review before starting next phase
---
## 🛠️ Tooling & Environment
### Development Environment
- **OS:** Linux (recommended), Windows 10/11, or macOS
- **Backend:** .NET 9.0 SDK
- **Frontend:** Node.js 18+, npm/yarn
- **Database:** PostgreSQL 15+
- **AI Services:**
- Python 3.8+
- Vosk + vosk-model-de-0.22 (~500MB)
- Coqui TTS + German model (~1.5GB)
- **Docker:** Docker Desktop or Docker Engine
- **IDE:** Visual Studio Code, Rider, or Visual Studio
### DevOps
- **Version Control:** Git + GitHub
- **CI/CD:** GitHub Actions
- **Containerization:** Docker + Docker Compose
- **Monitoring:** Health checks, logging
---
## 🎓 Team Onboarding
### New Team Member Checklist
1. **Environment Setup** (Day 1)
- [ ] Clone repository
- [ ] Install .NET 9.0 SDK
- [ ] Install Node.js 18+
- [ ] Install PostgreSQL
- [ ] Install Docker
- [ ] Install Python 3.8+
- [ ] Download Vosk model
- [ ] Download Coqui TTS model
- [ ] Run `docker-compose up`
- [ ] Verify all services are running
2. **Project Familiarization** (Day 2)
- [ ] Read AGENTS.md
- [ ] Read Application Plan
- [ ] Review Clean Architecture structure
- [ ] Review current feature plans
- [ ] Understand development workflow
3. **First Task** (Day 3)
- [ ] Pick a "good first issue" from backlog
- [ ] Create feature branch
- [ ] Implement with tests
- [ ] Submit PR for review
---
## 📊 Success Metrics
### Quality Metrics
| Metric | Target | Measurement |
|--------|--------|-------------|
| Code Coverage | 80%+ | SonarQube / Coverlet |
| Test Pass Rate | 100% | CI/CD Pipeline |
| Build Success Rate | 99% | CI/CD Pipeline |
| Deployment Frequency | Daily | GitHub Actions |
| Mean Time to Repair | <4h | Incident Tracking |
### Performance Metrics
| Metric | Target | Measurement |
|--------|--------|-------------|
| Backend Response Time | <500ms | Health Checks |
| Frontend Load Time | <2s | Lighthouse |
| API Latency (p95) | <300ms | Application Insights |
| AI Service Response | <5s | Custom Monitoring |
### Business Metrics
| Metric | Target | Measurement |
|--------|--------|-------------|
| User Registration | 100+/month | Analytics |
| Active Users | 50+/day | Analytics |
| Lesson Completion Rate | 80%+ | Database |
| Quiz Pass Rate | 80%+ | Database |
| User Retention (7-day) | 50%+ | Analytics |
---
## 📝 Version History
| Version | Date | Author | Changes |
|---------|------|--------|---------|
| 1.0 | May 31, 2025 | Vibe AI | Initial roadmap based on feature plans |
---
## 📚 Related Documentation
- [Feature Plans](features/README.md) - Detailed feature implementation plans
- [AGENTS.md](../AGENTS.md) - Development rules and workflows
- [Application Plan](architecture/application-plan.md) - Overall project vision
- [Backend Structure](architecture/backend-structure.md) - Technical architecture
- [Frontend Structure](architecture/frontend-structure.md) - Frontend architecture
- [Database Schema](database/initial-database-schema.sql) - Database design
---
*Last updated: May 31, 2025*
*Roadmap based on Clean Architecture, TDD, and Agile principles*