Skip to content

AdityaMedidala/RoomBooking_Production

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

12 Commits
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Room Booking System (React + Node.js + Supabase + Railway + Vercel)

A full-stack room booking application with an admin dashboard, automated email workflows, room management, and a calendar-based scheduling interface. Built with a modern TypeScript stack and deployed across Vercel, Railway, Supabase, Resend, and Cloudinary.

Live Demo

Frontend: https://room-booking-production-mlmp-fwi1lrdwd.vercel.app/

Tech Stack

Frontend:React, TypeScript, Vite, Tailwind, shadcn/ui, FullCalendar
Backend:Node.js, Express, TypeScript/JS, Supabase PostgreSQL, Resend (email), Cloudinary (room images)
Deployment:Railway (backend), Vercel (frontend)

Key Features

  • Admin dashboard with FullCalendar (month/week/day views), custom event rendering, and booking management
  • Room CRUD operations with Cloudinary-based image upload and multi-location grouping
  • Automated and manual email workflows using Resend (confirmation, cancellation, reschedule)
  • Transactional bookings with PostgreSQL(Supabase) and admin override
  • Secure admin login, historical booking archive, and searchable booking history

πŸ“‚ Project Structure

Here is the overview of the codebase organization:

backend/
β”œβ”€β”€ config/
β”œβ”€β”€ controllers/
β”‚   β”œβ”€β”€ adminController.js
β”‚   β”œβ”€β”€ bookingController.js
β”‚   β”œβ”€β”€ otpController.js
β”‚   └── roomController.js
β”œβ”€β”€ public/dist/        # Static assets
β”œβ”€β”€ routes/
β”‚   β”œβ”€β”€ adminRoutes.js
β”‚   β”œβ”€β”€ bookingroutes.js
β”‚   β”œβ”€β”€ otpRoutes.js
β”‚   └── roomRoutes.js
β”œβ”€β”€ utils/
β”‚   └── emailService.js
β”œβ”€β”€ server.js
└── package.json

frontend/
β”œβ”€β”€ public/             # Images, icons
β”œβ”€β”€ src/
β”‚   β”œβ”€β”€ components/
β”‚   β”‚   β”œβ”€β”€ ui/         # Shadcn components
β”‚   β”‚   β”œβ”€β”€ AdminPanel.jsx
β”‚   β”‚   β”œβ”€β”€ BookingForm.tsx
β”‚   β”‚   β”œβ”€β”€ ManageBooking.tsx
β”‚   β”‚   └── RoomCard.tsx
β”‚   β”œβ”€β”€ lib/
β”‚   β”‚   β”œβ”€β”€ admin-api.ts
β”‚   β”‚   β”œβ”€β”€ store.ts    # State management
β”‚   β”‚   └── utils.ts
β”‚   β”œβ”€β”€ pages/
β”‚   β”œβ”€β”€ types/
β”‚   β”œβ”€β”€ App.tsx
β”‚   └── main.tsx
β”œβ”€β”€ vite.config.ts
└── package.json

Installation & Setup

  1. Backend Setup Navigate to the backend directory:
cd backend
npm install

Create a .env file in the backend folder and add these environment variables:

# Server Configuration
PORT=5000

# Database (Supabase PostgreSQL)
DATABASE_URL=

# Resend Email Service
RESEND_API_KEY=
SENDER_EMAIL=

# Admin Authentication (for Admin Panel login)
ADMIN_EMAIL=
ADMIN_PASSWORD="1234"

Start the server:

npm start or npm run dev
  1. Frontend Setup Open a new terminal and navigate to the frontend directory:
cd frontend
npm install

Deployment

  • Backend: Railway
  • Frontend: Vercel
  • Database: Supabase PostgreSQL
  • Images: Cloudinary
  • Email: Resend

Contact

For any queries or contributions, feel free to open an issue or submit a PR.

About

Enterprise-style room booking platform featuring transactional scheduling, admin controls, and automated email notifications built with React, Node.js, and PostgreSQL.

Resources

Stars

Watchers

Forks

Contributors