18b61bed52cd4d32d796e0acbad6b130267d4c8c
- Widen AdminCandidateEditorModal to size lg for better readability - Rename "Clip-Compilation" section to "Clip / Compilation", update copy to reflect single clips too, drop upload hint and Clip-Plattform field, rename label to "Link" - Fix NativeSelect dropdown clipping inside overflow-y-auto modals by teleporting the menu to body with fixed positioning, flip-up logic, and dynamic maxHeight capped to viewport - Add ClipAdminMenuVisible setting (backend domain, contracts, endpoint, migration) with matching frontend types, defaults, form wiring, and toggle in the Clip-Workflow modal — hides the Clips nav item from the admin sidebar when disabled Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
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 pipelinedocker-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.
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.
Description
Languages
Vue
38.8%
C#
36.5%
TypeScript
20.6%
CSS
3.9%
Shell
0.2%