Inspiration

Booking a venue or caterer for an event usually means scattered phone calls, DMs, and spreadsheets, there's no single place to browse options, compare them, and actually book. I wanted to build something that brings customers, event centres, and caterers together in one platform, so the process feels as simple as booking a hotel room online. That idea became EventEase.

What it does

EventEase is a web-based event planning and booking platform with three roles:

Customers can browse event centres and catering packages, view details and pricing, create events, and send booking requests. Vendors (venue and caterer owners) get a dashboard to manage their listings and accept or reject incoming booking requests. Admins get an overview dashboard to monitor activity across the platform.

The goal is to remove the back-and-forth of traditional event booking and give everyone customers and vendors alike a clear, centralized way to manage the process.

How we built it

EventEase is built with:

React + Vite + TypeScript for the frontend, styled with Tailwind CSS Supabase for the backend — PostgreSQL database, Authentication, Storage, and Row Level Security (RLS) React Router for navigation and Lucide React for icons Deployed on [Vercel]

I approached the build in stages rather than all at once: setting up the project and database schema first, then authentication and routing, then the public browsing pages, then the customer booking flow, followed by the vendor dashboard, admin dashboard, file storage for images, and finally a pass on RLS policies and testing before deployment. I used the Supabase CLI with versioned migration files rather than the dashboard SQL editor, so every database change was tracked and repeatable.

I also put thought into the product side, not just the code landing on "EventEase" as a name because it's instantly self-explanatory, and choosing a "Trust Blue" color palette (deep navy primary, mid-blue accents, muted amber for calls to action) to make the platform feel credible for something as important as booking a real event.

Challenges we ran into

An accidental TypeScript scaffold. My project got set up with Vite's TypeScript template instead of plain JavaScript. Rather than starting over, I decided to properly type the whole project which meant learning TypeScript properly along the way instead of avoiding it. Row Level Security blocking public browsing. Early on, my public venue and caterer listings weren't showing up because there were no public read policies yet. I had to learn how to write and apply RLS policies through migrations so anyone could browse listings while still keeping bookings and dashboards locked to the right roles.

Accomplishments that we're proud of

Building a full three-role system (customer, vendor, admin) with real access control enforced at the database level, not just hidden in the UI. Sticking with TypeScript after the accidental scaffold instead of taking the easier route back to JavaScript. Designing a consistent brand identity name, color palette, and logo concept alongside the actual functionality, so the platform feels like a real product rather than just a prototype.

What we learned

I came away with a much deeper understanding of how authentication and authorization work together logging someone in is only half the picture; controlling exactly what they're allowed to see and do once they're in is where Row Level Security became essential. I also got more comfortable thinking in terms of database migrations and data models before jumping into UI work, which made the rest of the build much smoother.

What's next for EventEase – Event Booking platform

[Payments integration] so bookings can be paid for directly on the platform. [Reviews and ratings] so customers can share feedback on venues and caterers. Notifications so vendors and customers know immediately when a booking request is made, accepted, or rejected. Polishing the remaining UI screens and expanding test coverage.

Built With

Share this project:

Updates

Submission history