"Traditional rituals, made easier for modern India."
PujaCircle is a web-first platform designed to help devotees across Indian urban centers arrange traditional Vedic rituals, pujas, and ceremonies by connecting them with verified, knowledgeable purohits with transparent, priest-specific pricing and offline cash Dakshina.
This repository is structured for seamless collaboration by a 5-person engineering team. The repository enforces clean architectural boundaries:
| Layer | Implementation Status | Description |
|---|---|---|
| Frontend UI Application | π’ Fully Implemented & Modular | Clean React 19 + TypeScript + Vite architecture. Fully functional user portal (/user/*), priest dashboard (/priest/*), and admin console (/admin/*). All pages modularized into small (< 150 lines), beginner-friendly components. |
| Frontend Mock Engine | π’ Fully Functional (33/33 Tests Pass) | Complete in-memory mock database, delay simulation, priest-specific pricing, price snapshot locking, 5-hour booking response windows, and verified 5-star ratings. |
| Frontend Design System | π’ Complete | Modern semantic design tokens (Saffron, Regal Maroon, Gold, Warm Ivory), accessible typography, and official shadcn/ui components. |
| Backend Services & DB | π‘ Architecture Scaffolds | Express, Drizzle ORM, Zod schemas, and security middleware scaffolds. |
Documentation (docs/) |
π’ Source of Truth | Comprehensive specifications (PRD, SRS, UX flows, API contracts, architecture diagrams). |
These constraints are NON-NEGOTIABLE:
- Web Only: No mobile applications. Fully responsive web design.
- No Live Priest Tracking: No GPS or real-time map tracking.
- No Online Priest Payments: Priests are remunerated offline directly in cash upon ceremony completion. Booking statuses:
PENDINGβCONFIRMED/REJECTED/EXPIRED/CANCELLEDβCOMPLETED. - No E-Commerce: Samagri item delivery belongs to Phase 2.
- Priest-Specific Pricing: Priests define their own cash Dakshina per service via
PriestService. The price is locked authoritatively into the booking at request time. - Priest Approval Required: Devotees verify via phone/email OTP; Purohits verify via OTP followed by manual admin review and approval.
- Simplified Indian Address Model: PIN code auto-resolves locality, village/town, district, and state.
- 5-Hour Priest Response Window: Purohits have 5 hours to accept or decline before a booking expires.
- Verified Ratings Only: 1β5 star ratings are permitted only on
COMPLETEDceremonies by the devotee who booked.
- Framework: React 19 + TypeScript + Vite
- Styling: Tailwind CSS + CSS Variables Design System
- UI Components: shadcn/ui + Radix UI primitives + Lucide React
- Routing: React Router v7
- State Management: Zustand
- Forms & Validation: React Hook Form + Zod +
@hookform/resolvers - HTTP Client: Axios (configured with credentials and base URL)
- Utilities:
date-fns,sonner(toasts),clsx,tailwind-merge
- Runtime: Node.js + Express + TypeScript (
tsx) - ORM & Database: Drizzle ORM + PostgreSQL (Supabase)
- Security & Utilities:
zod,jsonwebtoken,bcryptjs,helmet,cookie-parser,cors,dotenv,imagekit
pujaCircle/
βββ frontend/ # React 19 + Vite + Tailwind + shadcn/ui application
β βββ public/ # Static assets
β βββ src/
β β βββ api/ # Lightweight API service wrappers
β β βββ components/
β β β βββ address/ # AddressModal, AddressCard
β β β βββ admin/ # PriestApprovalTable, UserManagementTable, PriestActionDialogs, UserActionDialogs
β β β βββ auth/ # AuthLoginForm, OtpVerificationCard, Forgot/Reset Cards
β β β βββ booking/ # BookingStatusBadge, RatingModal, CancelBookingDialog, BookingTimelineCard
β β β βββ common/ # ErrorBoundary, RoleRouteGuard, LoadingSpinner, EmptyState
β β β βββ layout/ # Header, Footer, PriestLayout, AdminLayout, PublicLayout
β β β βββ priest/ # AddSlotModal, ServiceFormModal, PriestBookingRow, PriestBookingDetailsDialog
β β β βββ ui/ # Reusable shadcn/ui primitives
β β βββ lib/ # Utilities (formatINR, formatDate, cn, constants, config)
β β βββ mocks/ # Mock DB, Mock APIs, artificial network delay, 11-suite test runner
β β βββ pages/ # Thin, readable page orchestrators (< 150 lines each)
β β β βββ admin/ # AdminDashboard, AdminPriests, AdminPriestDetails, AdminUsers, AdminProfile
β β β βββ auth/ # Devotee, Priest & Admin login/register/recovery pages
β β β βββ priest/ # PriestDashboard, PriestServices, PriestAvailability, PriestBookings, PriestProfile
β β β βββ public/ # HomePage, AboutPage, ContactPage, PriestListingPage, PriestDetailsPage
β β β βββ user/ # UserHomePage, BookingsPage, BookingDetailsPage, AddressesPage, ProfilePage
β β βββ routes/ # App router with role guards and code-split lazy loading
β β βββ schemas/ # Strict Zod validation schemas
β β βββ store/ # Zustand stores (auth.store, booking.store)
β β βββ types/ # TypeScript interfaces (priest, booking, address, auth, user)
β β βββ App.tsx # Root component with ErrorBoundary
β β βββ index.css # Theme variables & typography
β β βββ main.tsx # Application entrypoint
β βββ package.json
β βββ tsconfig.json
β βββ vite.config.ts
β
βββ backend/ # Express + Drizzle architectural scaffold
β βββ src/
β β βββ config/ # Environment & DB config skeletons
β β βββ controllers/ # Controller skeletons
β β βββ db/ # Schema definitions & seed skeletons
β β βββ middlewares/ # Auth, role, error & validation middlewares
β β βββ routes/ # Express route skeletons
β β βββ services/ # Service skeletons
β β βββ types/ # Express type extensions
β β βββ utils/ # Response helpers & logger
β β βββ validations/ # Zod validation skeletons
β β βββ app.ts # Express app setup
β β βββ server.ts # HTTP server entrypoint
β βββ drizzle/ # Migration directory
β βββ drizzle.config.ts
β βββ package.json
β βββ tsconfig.json
β
βββ docs/ # Comprehensive Documentation (Source of Truth)
β βββ 01-product/ # PRD, SRS, Scope, User Personas
β βββ 02-design/ # Design tokens, Color palette, Typography, UX flows
β βββ 03-architecture/ # System, Frontend, Backend, DB & Deployment architecture
β βββ 04-api/ # REST API contracts & endpoint specifications
β βββ 05-database/ # ERD, Backend schema specifications, Relationships, Seed data
β βββ 06-diagrams/ # Mermaid workflow and sequence diagrams
β βββ 07-development/ # Setup, Git workflow, Branching, PR guidelines, Code style
β βββ 08-ai/ # AI development rules, SKILLS.md, Prompts, Review guide
β βββ 09-testing/ # Test plan, Test cases, Edge cases, Acceptance tests
β
βββ .github/ # Automated CI testing pipeline (ci.yml)
βββ .gitignore
βββ LICENSE
βββ package.json # Root runner & developer scripts
βββ README.md
- Node.js: v20.x or higher
- npm: v10.x or higher
-
Clone the repository:
git clone <repository-url> cd pujaCircle
-
Install all dependencies:
# Install root dependencies npm install # Install frontend dependencies cd frontend && npm install && cd .. # Install backend dependencies cd backend && npm install && cd ..
-
Configure Environment Variables:
cp frontend/.env.example frontend/.env cp backend/.env.example backend/.env
The frontend is preconfigured to run with the functional Mock API layer without needing a backend server:
npm run frontendVisit http://localhost:5173 in your browser.
npm run devRun the 11 comprehensive automated SRS test suites directly in the terminal:
npm run test:mock| Role | Login Identifier | Password | Access Portal |
|---|---|---|---|
| Devotee | +919876543210 |
User@123 |
/user/login (Redirects to /user/home) |
| Purohit (Approved) | +919876543211 |
Priest@123 |
/priest/login (Redirects to /priest/dashboard) |
| Purohit (Pending) | +919876543213 |
Priest@123 |
/priest/login (Redirects to /priest/pending-approval) |
| Administrator | admin@pujacircle.demo |
Admin@123 |
/admin/login (Redirects to /admin/dashboard) |
PujaCircle utilizes a spiritual yet modern visual identity defined via CSS variables in frontend/src/index.css:
- Primary (
--primary/--brand-saffron): Sacred Saffron / Deep Orange (hsl(28, 92%, 52%)) - Secondary (
--secondary/--brand-maroon): Deep Regal Maroon (hsl(348, 65%, 28%)) - Accent (
--accent/--brand-gold): Warm Temple Gold (hsl(42, 85%, 55%)) - Background (
--background/--brand-ivory): Warm Ivory Neutral (hsl(40, 33%, 98%)) - Foreground (
--foreground/--brand-charcoal): Deep Charcoal (hsl(220, 20%, 14%))
- Product Requirements Document (PRD)
- Software Requirements Specification (SRS)
- Frontend Architecture Specification
- Design System & UX Flows
- API Contracts
- Backend Database Schema