joinourjoy
A dual-portal activity registration system for a Catholic school community, with a family-facing discovery interface and a volunteer-run admin panel.
27 commits over 3 days
What it is
JoinOurJoy is an activities portal built for the Annunciation Catholic School community in the Woodlands, TX. It provides two distinct experiences: a family-facing portal where parents can browse, filter, and favorite school activities by grade and category, and a comprehensive admin portal where APO (school parent organization) volunteers can manage activities, families, categories, and access logs. The system uses magic link authentication tied to an email allowlist, ensuring only authorized families and admins can access their respective portals.
Why I built it
Built to replace a manual activity management process for the Annunciation Catholic School parent organization. The dual-portal design addresses two distinct needs: empowering families to self-serve activity discovery filtered by their children's grades, and giving non-technical volunteers a clean, desktop-optimized admin interface to manage the activity catalog, family roster, and email allowlist without developer intervention.
Tech stack
Next.js 15 (App Router), TypeScript, tRPC, Prisma (PostgreSQL), NextAuth.js (magic link email auth), Tailwind CSS, React 19, Vercel (deployment). Admin interface uses Tailwind UI patterns with left-nav layout, rich text editor for activity descriptions, and CSV import/export for bulk family management.
Timeline & effort
Last active Sep 11, 2025 — 27 commits across 3 active days (spanning 1 day).
Intensive 3-day sprint with 27 commits between September 9–11, 2025. Three distinct active days of focused work building the dual-portal architecture, implementing magic link authentication improvements (including smart already-authenticated handling and logging), redesigning the admin panel from modals to full-screen views, and adding detailed contact fields with Google Maps integration to activity cards.
Did it turn out useful?
Deployed to production at joinourjoy.vercel.app with a complete dual-portal system handling real family and volunteer workflows. The extensive finished documentation covers shipped features: admin portal redesign, magic link auth improvements with edge-case handling, activity card contact enhancements, and robust bulk operations for families and activities. Three days of intensive commits reflect feature-complete implementation, not exploration.