How sinungp/makna-kanta works
MaknaKanta is a photography-studio site with an editable public landing page, an admin CMS for clients/content/media, and a client portal for ready-to-view Google Drive galleries. The client-management flow creates accounts and attaches Drive folders; clients authenticate, request an owned ready folder’s images, and view them through a same-origin image proxy. Media uploads enter Supabase Storage and a thumbnail-job queue for worker processing. Several routes and worker files are represented from their exact tree paths; their internal behavior was not sampled, so uncertain calls are omitted.
Main entry points: admin.ts Supabase data and storage · page.tsx Landing page · layout.tsx Admin dashboard · ClientsManager.tsx Client manager
Components 28
Public site
- Landing page
Main-App/app/page.tsx - Landing sections
Main-App/components/landing
Admin CMS
- Admin login
Main-App/app/admin/login/page.tsx - Admin dashboard
Main-App/app/admin/dashboard/layout.tsx - Client manager
Main-App/components/admin/ClientsManager.tsx - Content editor
Main-App/components/admin/ContentEditor.tsx - Media manager
Main-App/components/admin/MediaManager.tsx
Client portal
- Client login
Main-App/app/client/login/page.tsx - Client dashboard
Main-App/app/client/dashboard/page.tsx
Services and state
- Site content
Main-App/lib/site-content.ts - Admin login API
Main-App/app/api/admin/login/route.ts - Client account API
Main-App/app/api/clients/route.ts - Client record API
Main-App/app/api/clients/[id]/route.ts - Drive link APIs
Main-App/app/api/clients/[id]/links - Content API
Main-App/app/api/content/route.ts - Media upload API
Main-App/app/api/media/upload/route.ts - Media delete API
Main-App/app/api/media/[id]/route.ts - Client gallery API
Main-App/app/api/client/gallery/route.ts - Drive image proxy
Main-App/app/api/client/drive-image/route.ts - Supabase Auth
- Supabase data and storage
Main-App/lib/supabase/admin.ts - Drive gallery access
Main-App/lib/drive.ts - Thumbnail jobs
- Thumbnail worker
Main-App/worker/src/index.ts
Other components
- Site visitor
- Admin
- Client
- Google Drive
Connections 39
- Site visitor → Landing page: opens
- Landing page → Landing sections: renders
- Landing page → Site content: loads content
- Admin → Admin login: signs in
- Admin login → Admin login API: submits credentials
- Admin login API → Supabase Auth: verifies credentials
- Admin login API → Supabase data and storage: checks profile
- Admin → Admin dashboard: manages site
- Admin dashboard → Client manager: opens clients
- Client manager → Client account API: creates client
- Client account API → Supabase Auth: creates account
- Client account API → Supabase data and storage: writes profile and client
- Client manager → Client record API: deletes client
- Client record API → Supabase data and storage: deletes client record
- Client record API → Supabase Auth: deletes account
- Client manager → Drive link APIs: manages folder links
- Drive link APIs → Supabase data and storage: writes folder links
- Admin dashboard → Content editor: opens editor
- Content editor → Content API: saves content
- Content API → Supabase data and storage: upserts content
- Landing page → Supabase data and storage: reads landing content
- Admin dashboard → Media manager: opens media
- Media manager → Media upload API: uploads media
- Media upload API → Supabase data and storage: stores asset and original
- Media upload API → Thumbnail jobs: enqueues job
- Media manager → Media delete API: deletes media
- Media delete API → Supabase data and storage: removes asset and files
- Client → Client login: signs in
- Client login → Supabase Auth: authenticates
- Client → Client dashboard: opens portal
- Client dashboard → Client gallery API: requests gallery
- Client gallery API → Supabase Auth: checks session
- Client gallery API → Supabase data and storage: checks ownership and readiness
- Client gallery API → Drive gallery access: lists folder images
- Drive gallery access → Google Drive: lists images
- Client dashboard → Drive image proxy: loads image bytes
- Drive image proxy → Google Drive: fetches image
- Thumbnail worker → Thumbnail jobs: processes jobs
- Thumbnail worker → Supabase data and storage: updates thumbnails