Nitin Kumar JhaRésumé ↗
← All work
Restaurant reservation platform2025

Tabl.io

Reservation requests with an admin dashboard, RBAC, and transactional email.

Email delivery
99%
Auth
JWT / RBAC
Pipeline
CI/CD
Live ↗Source ↗React · Node.js · MongoDB · JWT · Brevo · GitHub Actions
Tabl.io interface

What it is

A table reservation system for restaurants. Guests submit a request, staff approve or decline it from an admin dashboard, and everyone gets an email either way.

What I built

RESTful CRUD APIs behind a React frontend, with JWT auth and role based access so guests only see their own requests while admins see all of them. Transactional email runs through the Brevo API for submission, approval and rejection, at 99% delivery.

Deployment goes through GitHub Actions, running tests before shipping to Vercel and Render.

The decision I would defend

Availability is checked at write time against the database, never against whatever the client last rendered. Two people opening the same slot at the same moment is the normal case here, not an edge case. If a request gets through a stale client check, the server rejects it with a specific reason instead of quietly double booking the table.

What I would fix

The confirmation email is sent inline with the request, so a slow mail provider makes the user wait. It belongs on a queue. The booking should commit immediately and the email should follow on its own.