5.2 KiB
5.2 KiB
Handoff to VPS Agent
Project: Elmeg Date: 2025-12-03 Status: Feature Complete / Ready for Deployment
1. Summary of Changes
We have implemented seven major feature sets:
- Advanced Content (Performance Nicknames):
- Backend: Added
PerformanceNicknamemodel. API endpoints for suggesting and approving nicknames. - Frontend: "Suggest Nickname" dialog on Show Detail page. Display of approved nicknames on the setlist.
- Backend: Added
- Review System:
- Backend: Added
Reviewmodel supporting multiple entity types (Show, Venue, Song, Performance, Tour, Year). - Frontend: Generic
EntityReviewscomponent. Integrated into Show Detail page.
- Backend: Added
- Groups / Communities:
- Backend: Added
Group,GroupMember,GroupPostmodels and APIs. - Frontend:
GroupsPage(list),GroupDetailPage(feed),CreateGroupPage.
- Backend: Added
- User Profile Enhancements:
- Backend: Added
routers/users.pyfor fetching user stats, attendance, reviews, and groups. - Frontend: Updated
ProfilePagewith tabs for Overview, Attendance, Reviews, and Groups.
- Backend: Added
- Global Search:
- Backend: Added
routers/search.pyfor multi-entity search (Songs, Venues, Tours, Groups, Users, Nicknames, Performances). - Frontend: Implemented
Cmd+Kdialog withcmdkandshadcn/ui.
- Backend: Added
- Performance Pages:
- Backend: Added
routers/performances.pywith logic to calculate "Gap" and "Times Played" stats, and identify Previous/Next performances. - Frontend: Created
/performances/[id]page with stats, navigation, and social features.
- Backend: Added
- Notifications:
- Backend: Added
Notificationmodel androuters/notifications.py. Implemented logic to notify group owners on new member joins. - Frontend: Added
NotificationBellto Navbar with unread count and popover list.
- Backend: Added
2. Technical Updates
- Database:
- New tables/columns added via Alembic migrations.
- Critical: Migration
6659cb1e0ca5_add_review_targets.pyfixed. - New: Migration
1305863562e7_add_groups.pyadded. - New: Migration
a526deda28e0_add_notifications.pyadded.
- Dependencies:
- Added
psycopg2-binarytobackend/requirements.txtfor PostgreSQL support. - Added
argon2-cffifor improved password hashing.
- Added
- Frontend Config:
- Added
lib/api-config.tsto handle API URL resolution (getApiUrl()) which correctly distinguishes between Server-Side Rendering (internal Docker network) and Client-Side (public URL).
- Added
3. Deployment Instructions
Option A: Docker Compose (Recommended)
If the VPS has Docker and Docker Compose:
-
Update Codebase: Pull the latest changes to the server.
-
Rebuild Containers:
docker-compose up --build -d -
Run Migrations:
docker-compose exec backend alembic upgrade head -
Verify: Check logs to ensure services started correctly.
docker-compose logs -f
Option B: Manual / Bare Metal
If running services directly (Systemd/PM2):
-
Backend:
-
Activate virtual environment.
-
Install new requirements:
pip install -r backend/requirements.txt -
Run migrations:
cd backend alembic upgrade head -
Restart Backend Service (e.g.,
systemctl restart elmeg-backend).
-
-
Frontend:
-
Install dependencies:
cd frontend npm install -
Build the application:
npm run build -
Restart Frontend Service (e.g.,
pm2 restart elmeg-frontend).
-
4. Verification Steps
- Navigate to a Show Page: Ensure the page loads (tests SSR connectivity).
- Check Reviews: Verify the "Reviews" section is visible at the bottom.
- Check Groups: Navigate to
/groups, create a group, and post a message. - Check Profile: Log in and verify your profile shows your attendance, reviews, and groups.
- Test Search: Press
Cmd+K(orCtrl+K) and search for "Tweezer" (Song) or "Tahoe Tweezer" (Nickname). - Navigate to a Show Page: Ensure the page loads (tests SSR connectivity).
- Check Reviews: Verify the "Reviews" section is visible at the bottom.
- Check Groups: Navigate to
/groups, create a group, and post a message. - Check Profile: Log in and verify your profile shows your attendance, reviews, and groups.
- Test Search: Press
Cmd+K(orCtrl+K) and search for "Tweezer" (Song) or "Tahoe Tweezer" (Nickname). - Check Performance Page: Click a search result for a Performance or Nickname and verify you land on
/performances/[id]. - Test Navigation: On a Performance Page, click "Previous Version" or "Next Version" to traverse the song's history.
- Test Notifications: Have another user join a group you created and verify the bell icon updates.
5. Known Issues / Notes
- Environment Variables: Ensure
DATABASE_URLis set correctly in the backend environment. EnsureINTERNAL_API_URLis set for the frontend if using Docker (e.g.,http://backend:8000).
6. Future Roadmap
See docs/ROADMAP.md for the detailed plan regarding Cross-Vertical Federation, Wiki Mode, Moderation, and Advanced Stats.