e497f19652ea67d7aab7ec4b0bf283d6136b0dd9
VTuber Star Awards
Production monorepo for the VTuber Star Awards platform.
Stack
- Frontend: Vue 3, Vite, Pinia, Tailwind CSS, PrimeVue, lucide icons
- Backend: ASP.NET Core 8, EF Core 8, PostgreSQL
- Delivery: Gitea Actions, Docker Compose, Nginx-served frontend, ASP.NET API
Repository Structure
frontend/Vue application and public assetsBackend/ASP.NET Core API, EF Core migrations, services and endpoints.gitea/workflows/ci.yamlbuild, hygiene, deploy and live verification pipelinedocs/PROJECT.mdproject facts, runtime expectations and documentation mapdocs/ARCHITECTURE.mdsystem structure, source-of-truth and deployment flowdocs/CONVENTIONS.mdcoding, validation, review and documentation standardsdocs/DECISIONS.mddurable architecture and operations decisionsdocker-compose.dev.ymloptional local PostgreSQL container for development
Generated archives, prototype exports, Word handoff files and local document-update scripts are intentionally ignored and should not be committed.
Engineering Docs
Start with:
- AGENTS.md for the engineering execution contract.
- docs/PROJECT.md for project/runtime facts.
- docs/ARCHITECTURE.md for system boundaries.
- docs/CONVENTIONS.md for coding and validation standards.
- docs/CHECKLISTS.md for quality gates.
- DESIGN.md for UI and product design guidance.
Local Development
Start the database:
docker compose -f docker-compose.dev.yml up -d
Run the backend:
cd Backend
dotnet restore
dotnet ef database update
ASPNETCORE_ENVIRONMENT=Development dotnet run --urls http://127.0.0.1:5084
Run the frontend:
cd frontend
npm ci
cp .env.example .env
npm run dev
Default development database:
Host=localhost;Port=5433;Database=vtuber_star_awards_dev;Username=vtsa_dev;Password=change-me-local-only
The same defaults live in Backend/appsettings.Development.json. For non-local environments, set VTSA_POSTGRES or ConnectionStrings__Postgres.
Useful Endpoints
- Public API:
/api/public/* - Admin dashboard:
/api/admin/dashboard - Admin moderation and risk workflows:
/api/admin/* - Sessions and auth:
/api/auth/* - App health:
/api/health - Database health and migrations:
/api/health/database
Development admin session example:
curl -X POST http://localhost:5084/api/auth/dev-login \
-H "Content-Type: application/json" \
-d '{"twitchUserId":"jayuhime_demo","displayName":"Jayuhime","role":"admin"}'
Validation
Run these before pushing application changes:
cd frontend
npm run build
cd ..
dotnet build Backend/Backend.csproj --configuration Release
git diff --check
Deployment
Pushes to main run .gitea/workflows/ci.yaml.
The pipeline:
- Checks repository hygiene.
- Builds the backend and frontend.
- Syncs the repository to the production host.
- Builds and recreates the Docker Compose
apiandwebservices. - Writes a PostgreSQL predeploy backup.
- Applies EF Core migrations.
- Verifies live health, database connectivity and frontend assets.
Production runs at https://award.noveria.net.
See docs/release-process.md for release readiness, smoke tests and rollback expectations.
Description
Languages
Vue
38.8%
C#
36.5%
TypeScript
20.6%
CSS
3.9%
Shell
0.2%