For general workflow and guidelines, see the organization CONTRIBUTING.md.
- .NET 8 SDK
- Docker (for MySQL + full-stack compose)
- Flutter SDK (for the mobile app)
- Node.js 18+ (for the admin dashboard)
docker compose up
# API on :5192, SyncService on :5133, MySQL on :3306cd Backend/VTA.API
dotnet run # API on :5192
dotnet test ../VTA.Tests/ # Needs Docker (Testcontainers)cd Frontend/vta_app
flutter pub get
flutter run
flutter testcd Frontend/admin-dashboard
npm install
npm run dev # Dev server on :5173VTA uses DB-first workflow. Schema source of truth is mysql_schema.sql.
# After schema changes, scaffold models:
dotnet ef dbcontext scaffold "server=...;database=VTA" \
Pomelo.EntityFrameworkCore.MySql -o scaffold -f- Backend: Standard .NET conventions
- Flutter: Never use
print()— usepackage:logging - Admin dashboard: Vue 3 + Vite, standard ESLint config