A full-featured Hotel Management System REST API built for ADC Hotel. This API handles guests, rooms, reservations, stays, billing, payments, and hotel services.
Designed for real-world hotel operations including check-ins, reservations, invoicing, and room management.
🌐 Live Frontend Demo: https://adc-hotel-app.vercel.app/
- Node.js + Express.js — Backend framework
- Drizzle ORM — Type-safe database ORM
- PostgreSQL — Relational database
http://localhost:4000/api/v1
✔ Guest Management ✔ Room & Room Type Management ✔ Reservation System (Single & Multiple Rooms) ✔ Check-in / Check-out System ✔ Stay Tracking ✔ Invoice Generation ✔ Payment Processing ✔ Hotel Services Management ✔ Room Status Control (available, occupied, maintenance)
| Method | Endpoint | Description |
|---|---|---|
| POST | /guests |
Create new guest |
| POST | /guests?updateExist=true |
Create or update existing guest |
| GET | /guests |
Get all guests |
| GET | /guests?search=keyword |
Search guests |
| GET | /guests/:id |
Get guest by ID |
| PUT | /guests/:id |
Update guest |
| Method | Endpoint | Description |
|---|---|---|
| POST | /rooms/types |
Create room type |
| GET | /rooms/types |
Get all room types |
| PUT | /rooms/types/:id |
Update room type |
| Method | Endpoint | Description |
|---|---|---|
| POST | /rooms |
Create room |
| GET | /rooms |
Get all rooms with type info |
| PATCH | /rooms/:id/status |
Update room status |
Room Status Options
available
occupied
maintenance
| Method | Endpoint | Description |
|---|---|---|
| POST | /reservations |
Create reservation |
| GET | /reservations |
Get all reservations |
| PATCH | /reservations/:id/cancel |
Cancel reservation |
| Method | Endpoint | Description |
|---|---|---|
| POST | /stays/checkin |
Check-in guest (create stay) |
| PATCH | /stays/:stayId/checkout |
Check-out guest |
| Method | Endpoint | Description |
|---|---|---|
| POST | /invoices/generate/:stayId |
Generate invoice for stay |
| GET | /invoices/stay/:stayId |
Get invoice by stay |
| Method | Endpoint | Description |
|---|---|---|
| POST | /payments/:invoiceId |
Pay invoice |
| Method | Endpoint | Description |
|---|---|---|
| POST | /services |
Create service |
| GET | /services |
List services |
| PUT | /services/:id |
Update service |
POST /api/v1/guests
Content-Type: application/json{
"firstName": "John",
"lastName": "Doe",
"email": "john.doe@email.com",
"phone": "+639171234567",
"idType": "National ID",
"idNumber": "725519999247742"
}git clone <your-repo-url>
cd <project-folder>npm installCreate a .env file:
DATABASE_URL=postgresql://user:password@localhost:5432/adc_hotel
PORT=4000
npx drizzle-kit pushnpm run devServer will run at:
http://localhost:4000
- Authentication & Role-based Access
- Reporting & Analytics
- Discounts & Promotions
- Housekeeping Module
- Multi-branch hotel support
Jimwell Ibay
- Creator & Maintainer
