Skip to content
Back to projects

Event Booking Platform Project

A full-stack event booking app using Vite React, Apollo GraphQL, Express, MongoDB, event creation, and booking flows.

  • Full-Stack Apps
  • TypeScript
  • React
  • Vite
  • Node.js
  • Express
  • GraphQL
  • Apollo
  • MongoDB
  • Mongoose
  • Docker
  • Bootstrap
  • Testing

Project image carousel

Event Booking Platform

Image 1 of 6

Project Concept

An event-booking platform with a GraphQL API — browsing and searching events, booking and cancellation, and creator-owned event management, with real-time activity through GraphQL Subscriptions.

What the Interface Shows

An Arabic event grid, two event-detail modals (heavily booked and unbooked), two users’ “My Bookings” pages with readable dates, and a login screen.

My Role and Decisions

When I found that event dates displayed correctly in the public browsing page but as raw epoch numbers in “My Bookings,” I realized the cause wasn’t a separate bug — the bookings query simply wasn’t passing its nested event data through the same formatting function (transformEvent) that the public events query already used. The fix was reusing that existing function rather than writing a second, duplicated date formatter, and I added an end-to-end test confirming both paths now return the same format. Instead of adding a placeholder favicon, I removed the stale reference since no approved brand asset actually existed.

Technical Aspects

A TypeScript Apollo/GraphQL server with a separate Vite client, authentication via bcryptjs and JSON Web Tokens, and booking/ cancellation ownership fully enforced in resolver logic (not just the client) — including preventing a user from double-booking the same event.

Project Value in the Portfolio

This project demonstrates diagnosing a defect by comparing the behavior of two similar code paths (a public query versus an authenticated one), and fixing it by reusing existing code instead of duplicating it.

View more projects
View more services