A full-stack hotel reservation platform inspired by the IRTRA hostels in Guatemala. This is an independent, unofficial project — it adds one feature the real IRTRA site doesn't offer: booking a stay online.
- Browse hotel information — location, amenities, and general details per property
- Make reservations online — a booking flow the official site doesn't support
Frontend: React, Material UI, CSS Backend: Node.js, Express, MySQL
- Node.js
- MySQL server running locally or accessible remotely
- A code editor (VS Code recommended)
Clone both repositories — the frontend and backend are split into separate projects:
git clone https://github.com/alegudiel/ReservationSystem.git
git clone https://github.com/alegudiel/ReservationSystem-Backend.gitInstall dependencies in each:
cd ReservationSystem && npm install
cd ../ReservationSystem-Backend && npm installStart the backend:
cd ReservationSystem-Backend
npm run devIn a second terminal, start the frontend:
cd ReservationSystem
npm startOpen http://localhost:3000 in your browser.
Frontend (ReservationSystem)
src/
├── api/ → API calls to the backend
├── Assets/ → images, icons, static assets
├── Components/ → reusable UI components
├── Containers/ → page-level components
├── Styles/ → CSS
├── UI/ → shared UI primitives
└── Utils/ → helpers
Backend (ReservationSystem-Backend)
src/
├── config/ → environment and app configuration
├── controllers/ → request handlers
├── routes/ → API route definitions
├── scripts/ → setup/utility scripts
└── types/ → TypeScript types
Frontend — npm start runs the app in development mode at localhost:3000, with hot reload and lint errors surfaced in the console.
Backend — npm run dev runs the server with nodemon for live reload.
This was an early full-stack project and isn't under active development. It's kept here as a reference for full-stack fundamentals (auth, REST API design, relational data modeling) from earlier in my path toward HCI and data science.
- IRTRA Hostels — for the inspiration
- The open-source tools and libraries this project depends on