How rlswenso/hackprinceton26 works
Lollicut is a kids’ hair-salon app: customers can book appointments, while staff manage the salon’s daily work. The repository also includes text and phone agents that support booking conversations. The graph covers those product areas and the backend services visible in the source index. Several frontend pages, routers, and agent subsystems are unsampled, so their internal connections are omitted rather than inferred.
Main entry points: bookings/service.py Booking confirmation · appointments/service.py Appointment actions · availability/engine.py Slot availability · voice/engine.py Phone call engine
Components 27
Web application
- Online booking
frontend/src/features/booking - Staff calendar
frontend/src/features/calendar - Daily overview
frontend/src/features/overview - Payment management
frontend/src/features/payments - Salon settings
frontend/src/features/settings - Staff assistant
frontend/src/features/assistant - Staff sign-in
frontend/src/features/auth
Salon backend
- Backend API
backend/app/features - Agent API
backend/app/features/agent - Slot availability
backend/app/features/availability/engine.py - Booking confirmation
backend/app/features/bookings/service.py - Appointment actions
backend/app/features/appointments/service.py - Service catalog
backend/app/features/catalog/service.py - Payments
backend/app/features/payments/service.py - Salon configuration
backend/app/features/settings/service.py - Reminders
backend/app/features/reminders/service.py
Conversational agents
- Text agent
agents/photon/lollicut_photon/server.py - Text conversation engine
agents/photon/lollicut_photon/agent.py - Phone webhooks
agents/photon/voice/server.py - Phone call engine
agents/photon/voice/engine.py - Language model client
agents/photon/lollicut_photon/llm.py - Speech handling
agents/photon/voice/speech.py
Shared foundations
- PostgreSQL access
backend/app/core/database.py - Transaction repository
backend/app/db/repository.py - Token authorization
backend/app/core/auth.py
Other components
- Customer
- Salon staff
Connections 31
- Transaction repository → PostgreSQL access: connects through
backend/app/db/repository.py - Token authorization → Transaction repository: checks grants
backend/app/core/auth.py - Token authorization → PostgreSQL access: uses connection
backend/app/core/auth.py - Slot availability → Transaction repository: reads capacity
backend/app/features/availability/engine.py - Booking confirmation → Slot availability: checks capacity
backend/app/features/bookings/service.py - Booking confirmation → Service catalog: loads service
backend/app/features/bookings/service.py - Booking confirmation → Reminders: records intent
backend/app/features/bookings/service.py - Appointment actions → Slot availability: checks capacity
backend/app/features/appointments/service.py - Appointment actions → Booking confirmation: uses booking
backend/app/features/appointments/service.py - Appointment actions → Reminders: updates reminders
backend/app/features/appointments/service.py - Payments → Appointment actions: uses appointments
backend/app/features/payments/service.py - Payments → Booking confirmation: uses bookings
backend/app/features/payments/service.py - Payments → Slot availability: checks availability
backend/app/features/payments/service.py - Salon configuration → Appointment actions: uses appointments
backend/app/features/settings/service.py - Salon configuration → Booking confirmation: uses bookings
backend/app/features/settings/service.py - Salon configuration → Slot availability: checks availability
backend/app/features/settings/service.py - Agent API → Appointment actions: uses appointments
backend/app/features/agent/service.py - Agent API → Slot availability: checks slots
backend/app/features/agent/service.py - Agent API → Booking confirmation: confirms bookings
backend/app/features/agent/service.py - Customer → Online booking: books online
- Salon staff → Staff calendar: manages visits
- Salon staff → Daily overview: views day
- Salon staff → Payment management: records payments
- Salon staff → Salon settings: configures salon
- Salon staff → Staff assistant: uses assistant
- Text agent → Text conversation engine: dispatches turns
agents/photon/lollicut_photon/server.py - Text conversation engine → Language model client: requests responses
agents/photon/lollicut_photon/agent.py - Phone webhooks → Phone call engine: routes calls
agents/photon/voice/server.py - Phone call engine → Language model client: requests responses
agents/photon/voice/engine.py - Phone call engine → Speech handling: formats speech
agents/photon/voice/engine.py - Phone call engine → Text conversation engine: uses shared agent logic