How soumyadeepmagnusx/celebration-event-planner works
Celebratify AI is a browser-based celebration planner. Users create or select an event, then manage its budget, milestones and day-of schedule, vendors, and creative materials; an overview and printable dossier help review and share the plan. EventContext is the central state layer, persisting event data locally and exposing planning actions to the screens. AI-assisted planning is an optional service capability. The graph follows documented capabilities where source excerpts are incomplete; dashed links mark the optional external AI integration.
Main entry points: EventContext.tsx Event context · App.tsx App shell · BudgetOverview.tsx Budget planner · geminiService.ts Gemini service
Components 23
Event state
- Event context
src/context/EventContext.tsx - Local persistence
src/services/storageService.ts - Event presets
src/constants/defaultEvents.ts
Planning workspace
- Event setup
src/components/event/CreateEventModal.tsx - Event header
src/components/event/EventHeader.tsx - Overview dashboard
src/components/dashboard/OverviewDashboard.tsx - Budget planner
src/components/budget/BudgetOverview.tsx - Timeline planner
src/components/timeline/TimelineView.tsx - Vendor CRM
src/components/vendors/VendorList.tsx - Creative studio
src/components/ideas/CreativeIdeationHub.tsx - AI co-planner
src/components/chat/AICoPlannerDrawer.tsx - Printable dossier
src/components/print/PrintableDossier.tsx
AI and safeguards
- Gemini service
src/services/geminiService.ts - Input validation
src/utils/validation.ts
Shared services
- Planning calculations
src/utils/calculations.ts - Planning categories
src/constants/categories.ts - Display formatters
src/utils/formatters.ts - Event data model
src/types/event.ts - Export service
src/services/exportService.ts
Other components
- Planner
- Gemini API
Connections 31
- Planner → App entry: opens
README.md - App entry → App shell: renders
src/main.tsx - App shell → Event context: provides
src/App.tsx - App shell → Event header: renders
src/App.tsx - App shell → Overview dashboard: routes to
src/App.tsx - App shell → Budget planner: routes to
src/App.tsx - App shell → Timeline planner: routes to
src/App.tsx - App shell → Vendor CRM: routes to
src/App.tsx - App shell → Creative studio: routes to
src/App.tsx - App shell → Printable dossier: routes to
src/App.tsx - Event context → Local persistence: persists events
src/context/EventContext.tsx - Event context → Event presets: loads defaults
src/context/EventContext.tsx - Event header → Event context: updates event
src/components/event/EventHeader.tsx - Event setup → Event context: creates event
src/components/event/CreateEventModal.tsx - Overview dashboard → Event context: reads event
src/components/dashboard/OverviewDashboard.tsx - Budget planner → Event context: updates budget
src/components/budget/BudgetOverview.tsx - Budget planner → Planning calculations: computes metrics
src/components/budget/BudgetOverview.tsx - Budget planner → Gemini service: requests optimization
src/components/budget/BudgetOverview.tsx - Budget planner → Input validation: validates input
src/components/budget/BudgetOverview.tsx - Timeline planner → Event context: updates schedule
src/components/timeline/TimelineView.tsx - Vendor CRM → Event context: updates vendors
src/components/vendors/VendorList.tsx - Vendor CRM → Gemini service: requests drafts
src/components/vendors/VendorList.tsx - Vendor CRM → Input validation: sanitizes input
src/components/vendors/VendorList.tsx - Creative studio → Event context: reads event
src/components/ideas/CreativeIdeationHub.tsx - Creative studio → Gemini service: requests ideas
src/components/ideas/CreativeIdeationHub.tsx - AI co-planner → Event context: sends chat
src/context/EventContext.tsx - Event context → Gemini service: requests chat
src/context/EventContext.tsx - Printable dossier → Export service: prints dossier
src/components/print/PrintableDossier.tsx - Gemini service → Gemini API: may call
README.md - Planning calculations → Planning categories: uses categories
src/utils/calculations.ts - Display formatters → Planning categories: uses currencies
src/utils/formatters.ts