How keophlyna/yike-archive works
This is a bilingual community archive for Lakhon Yike. Visitors browse and search published entries; contributors sign up, submit or edit entries with photos, and track their submissions; reviewers approve or return pending entries. Supabase provides authentication, Postgres data and review operations, and photo storage. The graph includes the documented domain stages and sampled UI/data layers. Some backend policies and implementations are explicitly unknown in the README, so those internals are not expanded.
Main entry points: page.js Archive home · ReviewQueue.js Review queue · EntryCard.js Entry cards · AuthForm.js Sign in and signup
Components 26
Browse and discover
- Archive home
app/page.js - Search suggestions
components/search/SearchSuggestions.js - Entry cards
components/entry/EntryCard.js - Entry detail
components/entry/EntryDetail.js - Performance section
components/entry/PerformanceSection.js - Costume section
components/entry/CostumeSection.js
Contribute and manage
- Sign in and signup
components/auth/AuthForm.js - Contribution page
app/contribute/page.js - Contribution form
components/form/ContributeForm.js - Entry fields
components/form/ContributeFields.js - Entry validation
utils/form/validateEntry.js - Save entry
utils/entries/saveEntry.js - Photo upload
utils/entries/uploadPhoto.js - Edit entry
components/form/EntryEditor.js - Update entry
utils/entries/updateEntry.js - My entries
app/my-entries/page.js
Editorial review
- Reviewer gate
app/review/page.js - Review queue
components/review/ReviewQueue.js - Review item
components/review/ReviewItem.js
Shared services
- Language preference
components/hooks/useLanguage.js - Collection metadata
collection.config.js - Supabase browser client
utils/supabase/client.js - Supabase server client
utils/supabase/server.js
Other components
- Visitor
- Supabase services
- Supabase photo storage
Connections 30
- Visitor → Archive home: browses
- Archive home → Supabase services: loads published entries
- Archive home → Entry cards: renders
app/page.js - Archive home → Search suggestions: uses search
app/page.js - Entry detail → Entry cards: renders detail
components/entry/EntryDetail.js - Entry cards → Performance section: renders phases
components/entry/EntryCard.js - Entry cards → Costume section: renders garments
components/entry/EntryCard.js - Archive home → Collection metadata: reads metadata
app/page.js - Visitor → Sign in and signup: creates account
- Sign in and signup → Supabase services: authenticates
components/auth/AuthForm.js - Visitor → Contribution page: submits entry
- Contribution page → Contribution form: presents form
- Contribution form → Entry fields: renders fields
components/form/ContributeFields.js - Entry fields → Entry validation: validates values
components/form/ContributeFields.js - Contribution form → Save entry: saves submission
- Save entry → Supabase services: inserts entry
- Save entry → Photo upload: uploads photo
- Photo upload → Supabase photo storage: stores photo
- Edit entry → Update entry: saves changes
components/form/EntryEditor.js - Update entry → Supabase services: updates entry
- Update entry → Photo upload: replaces photo
utils/entries/updateEntry.js - My entries → Supabase services: loads submissions
- Visitor → Reviewer gate: opens review
- Reviewer gate → Supabase services: checks reviewer
- Reviewer gate → Review queue: loads pending entries
app/review/page.js - Review queue → Review item: renders entries
components/review/ReviewQueue.js - Review queue → Supabase services: submits decision
components/review/ReviewQueue.js - Entry detail → Supabase services: fetches entry
components/entry/EntryDetail.js - Sign in and signup → Language preference: reads preference
components/auth/AuthForm.js - Review queue → Language preference: reads preference
components/review/ReviewQueue.js