Platform-wide visual overhaul, team invites, analytics improvements, and deployment hardening
UI overhaul applying jury dashboard design patterns across all pages: - Stat cards with border-l-4 accent + icon pills on admin, observer, mentor, applicant dashboards and reports - Card section headers with color-coded icon pills throughout - Hover lift effects (translate-y + shadow) on cards and list items - Gradient progress bars (brand-teal to brand-blue) platform-wide - AnimatedCard stagger animations on all dashboard sections - Auth pages with gradient accent strip and polished icon containers - EmptyState component upgraded with rounded icon pill containers - Replaced AI-looking icons (Brain/Sparkles/Bot/Wand2/Cpu) with descriptive alternatives across 12 files - Removed gradient overlay from jury dashboard header - Quick actions restyled as card links with group hover effects Backend improvements: - Team member invite emails with account setup flow and notification logging - Analytics routers accept edition-wide queries (programId) in addition to roundId - Round detail endpoint returns inline progress data (eliminates extra getProgress call) - Award voting endpoints parallelized with Promise.all - Bulk invite supports optional sendInvitation flag - AwardVote composite index migration for query performance Infrastructure: - Docker entrypoint with migration retry loop (configurable retries/delay) - docker-compose pull_policy: always for automatic image refresh - Simplified deploy/update scripts using docker compose up -d --pull always - Updated deployment documentation Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -12,7 +12,7 @@ The app is built automatically by a Gitea runner on every push to `main`:
|
||||
|
||||
1. Gitea Actions workflow builds the Docker image on Ubuntu
|
||||
2. Image is pushed to the Gitea container registry
|
||||
3. On the server, you pull the latest image and restart
|
||||
3. On the server, `docker compose up -d` refreshes the image and restarts the app
|
||||
|
||||
### Gitea Setup
|
||||
|
||||
@@ -165,6 +165,15 @@ cd /opt/mopc
|
||||
|
||||
This pulls the latest image from the registry, restarts only the app container (PostgreSQL stays running), runs migrations via the entrypoint, and waits for the health check.
|
||||
|
||||
Manual equivalent:
|
||||
|
||||
```bash
|
||||
cd /opt/mopc/docker
|
||||
docker compose up -d --pull always --force-recreate app
|
||||
```
|
||||
|
||||
`prisma migrate deploy` runs automatically in the container entrypoint before the app starts.
|
||||
|
||||
## Manual Operations
|
||||
|
||||
### View logs
|
||||
|
||||
Reference in New Issue
Block a user