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