A family scheduling app built to coordinate stays at a shared lake house. Family members can view a shared calendar, claim date ranges, and manage their bookings — all behind an invite-only authentication wall so only the right people get in.

Features

  • Passwordless auth — sign in via a 6-digit email code, no passwords required
  • Interactive calendar — click to select a start and end date, with real-time conflict detection
  • Booking management — create and cancel your own reservations from the dashboard
  • Invite-only access — new members submit a request; admins approve or deny
  • Admin dashboard — manage users, review all bookings, and send invitations
  • PWA support — installable on mobile as a home screen app

Screenshots

Dashboard showing the monthly calendar view
Monthly calendar dashboard
Calendar with a date range selected and confirm booking prompt
Selecting and confirming a booking
Admin panel for inviting family members and viewing all bookings
Admin panel — invite family and view all bookings
Account profile page
Account profile page

How It Works

Family members sign in by entering their email and receiving a one-time code. The calendar shows all existing bookings across the household, and users click to select their arrival and departure dates. Any already-booked dates are blocked automatically to prevent double-booking.

Admins manage access from a separate panel where they can approve registration requests and send direct invitations to new members.

Tech

Built with Next.js and TypeScript on the frontend, Tailwind CSS for styling, and Prisma with PostgreSQL for the data layer. Authentication is handled with a custom email verification code flow using nodemailer, with NextAuth.js managing sessions.