How craizes/cirvisafun works
This is a Next.js portal for a fictional civic role-play community: users authenticate with Telegram, then access profiles and activities such as banking, jobs, shopping, taxes, visas, and referrals; administrators manage those systems. The graph groups user-facing areas, operational domains, admin tools, and shared services. Evidence is limited to the supplied excerpts and SOURCE INDEX; paths for unsampled features are supported by the tree, but their internal wiring is not asserted.
Main entry points: supabase.ts Supabase client · route.ts Verify auth code · page.tsx User profile · LoginForm.tsx Login form
Components 25
Portal and access
- Home
app/page.tsx - Hero slider
components/HeroSlider.tsx - Login form
app/login/LoginForm.tsx - Send auth code
app/api/send-code/route.ts - Verify auth code
app/api/verify-code/route.ts - User profile
app/user/[id]/page.tsx - Profile data API
app/api/user/data/route.ts - Avatar
components/Avatar.tsx - Role badge
components/RoleBadge.tsx
Civic services
- Taxes
app/bank/taxes/page.tsx - Visa services
app/visa/page.tsx - Citizenship exam
app/citizenship/exam/page.tsx - Referrals
lib/referral.ts
Community economy
- Banking
app/bank/BankClient.tsx - Promo codes UI
app/bank/promo/PromoClient.tsx - Jobs
app/jobs/page.tsx - Shop
app/shop/[categoryId]/CategoryClient.tsx - Daily farming
app/api/farm/route.ts
Administration
- Admin dashboard
app/admin/AdminDashboardClient.tsx - Admin tax API
app/api/admin/taxes/route.ts
Shared services
- Promo services
lib/promo.ts - Supabase client
lib/supabase.ts - Telegram utilities
lib/utils.ts - Visa charging
lib/visa-charge.ts
Other components
- Visitor or citizen
Connections 23
- Visitor or citizen → Home: opens
- Home → Hero slider: renders
app/page.tsx - Visitor or citizen → Login form: signs in
- Login form → Send auth code: requests code
- Login form → Verify auth code: submits code
- Send auth code → Supabase client: stores code
app/api/send-code/route.ts - Send auth code → Telegram utilities: sends message
app/api/send-code/route.ts - Verify auth code → Supabase client: checks session data
app/api/verify-code/route.ts - Verify auth code → Telegram utilities: loads Telegram info
app/api/verify-code/route.ts - Verify auth code → Referrals: activates code
app/api/verify-code/route.ts - Visitor or citizen → User profile: views profile
- User profile → Avatar: renders
app/user/[id]/page.tsx - User profile → Role badge: renders
app/user/[id]/page.tsx - User profile → Daily farming: starts farming
app/user/[id]/page.tsx - Profile data API → Supabase client: reads profile
app/api/user/data/route.ts - Profile data API → Visa charging: charges visa
app/api/user/data/route.ts - Promo codes UI → Promo services: uses status types
app/bank/promo/PromoClient.tsx - Daily farming → Supabase client: updates balance
app/api/farm/route.ts - Admin tax API → Supabase client: reads and writes
app/api/admin/taxes/route.ts - Admin dashboard → Admin tax API: manages taxes
- Taxes → Admin tax API: administers
- Promo services → Supabase client: uses database
lib/promo.ts - Referrals → Supabase client: uses database
lib/referral.ts