Technology Requirements Demo 1 - COS301-SE-2026/Mealchemy GitHub Wiki
Technology Requirements
Frontend
-
Framework: Flutter (stable channel, Dart SDK >= 3.0.0)
-
Current Target platforms: Android (Gradle/Kotlin), iOS (Xcode/CocoaPods), macOS (Xcode/CocoaPods)
- [platform runner directories are auto-generated by Flutter and are not manually maintained]
-
State management: flutter_riverpod
-
Linting: flutter analyze (flutter_lints ruleset)
-
Testing: flutter test with lcov (80% line coverage enforced)
Backend
- Framework: Spring Boot 3.x, Java 21
- Build tool: Maven Wrapper (mvnw, version 3.9.15)
- Key dependencies: Spring Web, Spring Data JPA, Spring Security, Spring Boot Actuator
- Authentication: JWT, stateless, 24-hour expiry
- Password hashing: BCrypt cost factor 12
- Code style: Google Java Style enforced via Checkstyle
- Testing: JUnit via Maven, JaCoCo (80% instruction, branch, and method coverage enforced)
Recommendation Engine
- Language: Python 3.12
- Linting: Ruff
- Type checking: Mypy
- Testing: pytest with pytest-cov (80% line coverage enforced)
Database
- Database: PostgreSQL 16
- Schema management: Flyway (versioned SQL migrations)
- ORM: Hibernate via Spring Data JPA
Infrastructure and DevOps
- Containerisation: Docker (multi-stage builds)
- Orchestration: Docker Compose
- CI/CD: GitHub Actions
- Coverage reporting: Codecov (backend, engine, and frontend reported separately)
Hosting
- [To be setup in sprint 2]
- Platform: Firebase (free tier), setup planned for a future milestone
During Development Hosting
- [sprint 1 only]
- Backend hosting: Render (free tier)
- Uptime monitoring: Uptime Robot