🌅 PSOTS Admin
Chhath 2026 · Committee Panel
← View Site
📥 Import CSV
⚡ Event Operations
💰 Contributions & Finance
📣 Communications
👥 Community
⚙️ Admin
📥
Import CSV
Bulk-load historical data
🙏 All Contributors
Mark payments as verified (✅) once you confirm the UPI transfer in your PhonePe/GPay app. Data loads from D1 — no Firestore or Google Sheets dependency.
Filter:
All
Pending
Verified ✅
Rejected
🌅 Loading contributors…
Total Verified
📲 Payment Reminder Blast
Select a tower to see paid vs remaining, compose your message, then send to all or selected flats.
Message (edit before sending):
💰 Financial Overview
These numbers show on the public website financial section. Update them as contributions come in.
Verified carry-forward from last year
Auto-updates from verified contributions
📋 Planned Budget Allocation
How you plan to split this year's budget. Fills as a "Where your money goes" chart on the public Finance page — only shows once you enter values.
📊 Expense Breakdown
Update actual spend per category as you make payments. Shows on public site as progress bars.
📊 Analytics Dashboard
🧾 Expense Receipts
Log receipts for every expense category. Add vendor name, actual amount, date, and a Google Drive link to the scanned receipt photo.
🔄 Year Rollover
Use this once the current year's event is complete to archive this year's data and prepare for next year. The carry-forward balance is auto-calculated.
Load finance data first, then run rollover.
= Available − Expenses for this year
📢 Manage Announcements
Add, edit or remove announcements. These show on the public website and dashboard tile. Drag to reorder (coming soon).
⚙️ Arghya and Kharna timings are edited in Settings → Event Configuration (saved to D1 for cross-device sync).
🗓 All Four Days — Quick Edit
👥 WhatsApp Subscribers
Residents who opted in to WhatsApp updates from their portal account. Use their numbers to create a WhatsApp broadcast list.
📲 WhatsApp Broadcast Message
Compose a message to send to your WhatsApp broadcast list. The message opens in WhatsApp ready to send — you select the broadcast list and hit send.
0 characters
Your message will appear here…

"Send via Fonnte" delivers directly to all opted-in subscribers — no manual steps needed. Requires FONNTE_TOKEN set as a Cloudflare Pages secret.

💬 WhatsApp Group Broadcast
Send a message directly to the society WhatsApp group (120363027473206726). Message is delivered instantly via Fonnte — no manual steps.
0 characters
Your message will appear here…

⚠️ This sends to all 250+ group members immediately. Double-check your message before sending.

⏰ Reminder Scheduler
Set up key reminder dates. On each date, the broadcast message will be pre-composed and ready to send. You'll see a notification on the dashboard.
📧 Email Broadcast
Send an email to all residents with an email on file, or only to those who haven't paid yet. Uses ZeptoMail — no WhatsApp credits consumed.
0 characters
✍️ Manual Contribution Entry
Use this to enter contributions for: cash payments, senior citizens who aren't tech-savvy, anonymous donors, or anyone who paid directly without filling the form. These entries are marked as Admin Entry for transparency.
💵 Cash
📲 UPI (helped them)
🎭 Anonymous
👴 Senior Citizen
🏢 Corporate/Group
Email receipt sent via ZeptoMail — preferred over WhatsApp to conserve credits
📋 Recent Manual Entries
Loading…
📥 Bulk Entry — Paste List
Quickly enter multiple cash contributions at once. Format: one per line — Name, Flat, Amount
Example: Sunita Devi, 5432, 501
🤝 Volunteer Management
View all volunteer sign-ups, assign tasks, and track event-day attendance. Data syncs from the volunteer sign-up page.
Total Volunteers
Sandhya Arghya
Usha Arghya
Checked In
#NameFlatMobileDaysTasksStatusActions
Click Refresh to load volunteers…
🤝 Register Prasad for a Resident
Help senior citizens or residents who cannot register online. Find the flat first, review any existing RSVP, then create or update it explicitly.
🙏 Prasad RSVP Summary
Aggregated prasad requirements from resident RSVPs. Use this to order the right quantities.
Total RSVPs
People Attending
Kharna Plates
Thekua Packets
Kharna Collected
Thekua Collected
🙏 Prasad Distribution List
Auto-generated from verified contributions + Vrati registrations. Use on event day for prasad distribution. Filter by tower or Vrati status, then print.
Tower:
All
🕉️ Vratis Only
#Name(s)FlatTowerAmountVratiPrasad
Click Refresh to load list…
📋 Prasad Activity Log
Every scan/approval/rejection/undo, newest first. Undo appears only where it's actually allowed.
Time (IST)FlatVolunteer CounterDayQty MethodResultReason
Loading…
📷
Prasad Scan
Select station and day, then scan QR or use flat fallback.
Checking connection…
🏷️ Counter Station Not selected yet
Tap to select your counter — switch anytime. Logged with every pickup.
Manual fallback — real residents only
Use when a resident's QR is unavailable. For PPMS staff or anonymous walk-ins, use Quick Counters below instead — this panel is just for a real flat number, known or newly-registering.
Enter a real flat number to look it up or register a new walk-in resident by name.
Quick Counters No names, no lookup
For PPMS staff and anonymous walk-ins. Counts follow the selected Kharna/Thekua day.
0 Today
🏢 PPMS Staff
Property/housekeeping/security staff — one shared code for all of them today.
0 Today
🎫 Walk-in (anonymous)
Unknown visitors, no flat/name asked — today's unique code:
— / —Flats collected / registered
— / —People collected / registered
📦 Plate Stock — received · — scanned · — left
Batch will be tagged to your active counter station (or shared if none selected)
🏢 PPMS Allocation — allocated · — given · — left
⚪ Standard mode
WhatsApp:
⏳ Checking…
🤖 WA Helpline Bot Health
Real response-time and usage stats from the helpline bot — actual numbers instead of "it felt slow" guessing.
Messages
Avg Response
P95 Response
Success Rate
🗓 Event Configuration
Dates, timings, and UPI details — saved to D1 and applied site-wide instantly.
🌅 Sandhya Arghya (Day 3)
🌄 Usha Arghya (Day 4)
🍽️ Kharna Prasad (Day 2)
📱 WhatsApp Numbers
🪔 Footer Committee
Names and titles shown in the site footer and the public committee page. Positions change each year — update freely. Phone numbers appear as tap-to-call links.
📣 Prasad Day Broadcasts
📣 Prasad Alert Broadcast
Notify all verified residents that distribution is starting. Edit the message, then send.
📲 Nudge Uncollected Flats
Late-day reminder to flats who haven't collected prasad yet today
👥 WhatsApp Group Broadcast
Send one message to a WhatsApp group (e.g. Volunteers) instead of a DM per member.
🙏 Contribution Thank-You Cards
Sends every verified resident a personalized thank-you card image over WhatsApp. Skips anyone already sent one this year — safe to click again to resume.
👤 Resident Profiles D1
Search by name, flat, email, or phone. Add new residents (without a contribution) or edit existing contact details.
💳 Contributions D1
View and edit all contribution records stored in D1. Shows email and phone. Filter by year, status, or search by name/flat/email.
🧩 Orphan Contributions D1
Contributions with no confirmed flat yet — e.g. paid but never gave real household details. Click ✏️ once they confirm a real flat, or leave here otherwise.
🔐 Login Activity D1
Residents who signed in within the selected window.
Name Flat Contact Provider Last Login First Joined
Loading…

📲 Confirm WhatsApp Send

Message preview
Recipients ()
🎫 Support Tickets
Complaints raised via WhatsApp, email, or web — assign, update status, resident is notified automatically
Ticket Resident Category Description Status Raised Actions
Loading…

🎫 Ticket

📝 Description
🕐 Activity
👤 Assign To
💬 Add Comment / Internal Note
🔄 Change Status
➕ Grant or Update Access
Search for a resident — their email, name and flat auto-fill from their profile.
🛡️ Current Access
People with dashboard access right now. Use Revoke to remove access.
🔑 Full Admins (keep to 2–3)
🤝 Volunteers
🎭 Committee Roles
Assign flat numbers to roles shown on the public committee page and in communications.
🔐 Volunteer Access & Permissions
Control which tabs volunteers can open and which Prasad actions they can perform. Admins always have full access. Enforced server-side immediately — the frontend tab list refreshes on next login.
🛡️ Full access reference (admin vs volunteer)
Read-only — backend-enforced gates in _shared/adminAuth.js. Volunteers can't reach a ❌ feature even by calling the API directly.
Feature 🔑 Admin 🤝 Volunteer Notes