How spt22kousis/ncuacg_net_fork works
NCU ACG is a club website combining member accounts, club content, attendance, events, and a substantial Songfest management platform. Visitors and members enter through the React application; its pages use the shared API client to reach Django-backed features. Songfest spans submissions, requests, scheduling, and post-event playback records, while attendance can be created from lesson or festival sessions. The README documents these capabilities, but many corresponding views and API modules were not excerpted, so some cross-layer links are intentionally dashed and unverified.
Main entry points: client.ts API client · settings.py Django database · App.tsx React routes · request_views.py Songfest endpoints
Components 28
Web application
- React routes
frontend/src/App.tsx - API client
frontend/src/api/client.ts
Accounts
- Account pages
frontend/src/pages/Login.tsx - Accounts API
NCUACG/accounts/views.py - Account records
NCUACG/accounts/models.py
Club operations
- Club and works
frontend/src/pages/Works.tsx - Club content API
NCUACG/club/views.py - Club content
NCUACG/club/models.py - Lesson notices
NCUACG/club/lessons.py - Event listings
NCUACG/event/views.py - Check-in scanner
frontend/src/pages/club/Checkin.tsx - Check-in service
NCUACG/checkin/views.py - Check-in rules
NCUACG/checkin/rules.py - Attendance records
NCUACG/checkin/models.py
Songfest
- Songfest pages
frontend/src/pages/songfest/Manage.tsx - Songfest endpoints
NCUACG/songfest/request_views.py - Submission rules
NCUACG/songfest/submissions.py - Setlist engine
NCUACG/songfest/setlist.py - Songfest records
NCUACG/songfest/models.py
AI assistant
- Chat widget
frontend/src/components/ChatWidget.tsx - Chat hook
frontend/src/hooks/useChat.ts - LLM client
NCUACG/assistant/services/llama_client.py - Context retriever
NCUACG/assistant/services/retriever.py - Persona prompts
NCUACG/assistant/services/personas.py
Other components
- Visitor / member
- Google Sheets
- Groq model service
- Django database
NCUACG/NCUACG/settings.py
Connections 33
- Visitor / member → React routes: opens site
README.md - React routes → Account pages: routes to
frontend/src/App.tsx - React routes → Club and works: routes to
frontend/src/App.tsx - React routes → Songfest pages: routes to
frontend/src/App.tsx - Account pages → API client: uses API
- Club and works → API client: uses API
frontend/src/pages/Works.tsx - API client → Accounts API: HTTP requests
- API client → Club content API: HTTP requests
- API client → Event listings: HTTP requests
- API client → Check-in service: HTTP requests
- API client → Songfest endpoints: HTTP requests
- Accounts API → Account records: manages
NCUACG/accounts/views.py - Club content API → Club content: uses records
NCUACG/club/models.py - Lesson notices → Club content: reads lessons
NCUACG/club/lessons.py - Event listings → Club content: reads lessons
NCUACG/event/views.py - Check-in service → Check-in rules: applies rules
NCUACG/checkin/views.py - Check-in rules → Attendance records: creates records
NCUACG/checkin/rules.py - Check-in scanner → API client: uses API
- Songfest pages → Songfest endpoints: requests features
- Songfest endpoints → Submission rules: applies rules
- Songfest endpoints → Setlist engine: builds schedules
- Setlist engine → Songfest records: uses records
- Submission rules → Songfest records: uses records
- Google Sheets → Songfest records: imports history
README.md - Chat widget → Chat hook: uses hook
frontend/src/components/ChatWidget.tsx - Chat hook → API client: posts messages
frontend/src/hooks/useChat.ts - LLM client → Context retriever: retrieves context
NCUACG/assistant/services/llama_client.py - LLM client → Persona prompts: builds prompts
NCUACG/assistant/services/llama_client.py - LLM client → Groq model service: calls model
NCUACG/assistant/services/llama_client.py - Django database → Account records: stores
- Django database → Club content: stores
- Django database → Attendance records: stores
- Django database → Songfest records: stores