How nitinj1212/paintings_web works
This is a Next.js art-gallery application: visitors browse paintings, while signed-in users can like and save works; artists manage profiles and painting listings, and super admins manage users and catalog metadata. The tree also indicates an emotion-based gallery experience and rating repositories, but their runtime wiring is not shown in the sampled source. The graph follows the visible API-to-Supabase calls and treats unsampled UI composition cautiously; the README provides no further product detail.
Main entry points: server.js Server client · auth-server.ts Auth guards · GalleryExperience.tsx Gallery experience · route.ts Artist profiles
Components 30
Gallery experience
- Home page
app/page.tsx - Gallery page
app/gallery/page.tsx - Gallery experience
components/GalleryExperience.tsx - Painting stage
components/PaintingStage.tsx - Painting navigation
components/PaintingNav.tsx - Emotion picker
components/EmotionPicker.tsx - Rating repository
services/ratingRepository.ts - Local rating store
services/localRatingRepository.ts
Identity and roles
- Sign-in page
app/signin/page.tsx - Sign-up page
app/signup/page.tsx - Auth forms
components/auth/SignInForm.tsx - Auth API
app/api/auth/route.js - Auth guards
lib/auth-server.ts - Session handling
lib/session.ts
Artwork and catalog
- Artist profiles
app/api/artist/profile/route.ts - Painting catalog API
app/api/paintings/route.ts - Painting details API
app/api/paintings/[id]/route.ts - Likes API
app/api/likes/route.ts - Wishlists API
app/api/wishlists/route.ts - Categories API
app/api/categories/route.ts - Mediums API
app/api/mediums/route.ts - User administration
app/api/admin/users/route.ts
Data access
- Server client
utils/supabase/server.js - Supabase data service
- Painting data
data/paintings.ts - Shuffle queue
lib/shuffleQueue.ts
Other components
- Visitor
- Signed-in member
- Artist
- Super admin
Connections 35
- Visitor → Home page: opens
- Visitor → Gallery page: browses
- Signed-in member → Sign-in page: signs in
- Signed-in member → Sign-up page: registers
- Artist → Painting catalog API: uploads
- Artist → Artist profiles: manages profile
- Super admin → User administration: administers
- Gallery page → Gallery experience: renders
- Gallery experience → Painting stage: presents
- Gallery experience → Painting navigation: offers navigation
- Gallery experience → Emotion picker: offers emotion choice
- Sign-in page → Auth forms: renders
- Sign-up page → Auth forms: uses form
- Auth forms → Auth API: submits
- Auth API → Server client: creates client
- Auth guards → Server client: creates client
- Painting catalog API → Auth guards: checks artist role
- Painting details API → Auth guards: checks user
- Likes API → Auth guards: requires user
- Wishlists API → Auth guards: requires user
- Artist profiles → Auth guards: requires user
- Categories API → Auth guards: checks admin role
- Mediums API → Auth guards: checks admin role
- User administration → Auth guards: checks admin role
- Painting catalog API → Server client: creates client
- Painting details API → Server client: creates client
- Likes API → Server client: creates client
- Wishlists API → Server client: creates client
- Artist profiles → Server client: creates client
- Categories API → Server client: creates client
- Mediums API → Server client: creates client
- User administration → Server client: creates client
- Server client → Supabase data service: queries and writes
- Gallery experience → Rating repository
- Rating repository → Local rating store