A full-stack, monorepo project that demonstrates a modern Hotel-Management Service built with Amplication.
It contains two ready-to-run applications:
- Server – A NestJS / GraphQL API with authentication, authorization and a PostgreSQL database powered by Prisma.
- Admin UI – A React + React-Admin client that provides an out-of-the-box administrative interface for managing hotels, rooms, reservations and customers.
The repository is intended both as a reference implementation—showing how Amplication scaffolds production-grade Node.js & React apps—and as a starting point for your own hotel-management-style projects.
- Prerequisites
- Installation
- Usage
- Project Structure
- Development
- Testing
- Contributing
- License
- Acknowledgements
- Node.js ≥ 16
- npm ≥ 8 (bundled with Node)
- Docker & Docker Compose – optional but strongly recommended for an easy, reproducible setup
The project was last generated and tested with Node 18 & Docker 24.
Clone the repository and install dependencies for each application:
# clone
git clone https://github.com/overcut-ai/awesome-overcut.git
cd awesome-overcut
# install server deps
cd apps/hotel-management-service-server && npm install
# install admin deps
cd ../hotel-management-service-admin && npm installFeel free to use your favourite package manager (
yarn,pnpm, …)—adjust commands accordingly.
The server application ships with a docker-compose.yml that spins up the API and a PostgreSQL database—perfect for evaluation or local development:
cd apps/hotel-management-service-server
# copy env template if you wish to adjust values
cp .env .env.local # optional
# build and start containers (API + DB + migration job)
npm run compose:upOnce the containers are healthy:
- GraphQL Playground –
http://localhost:3000/graphql - Swagger UI –
http://localhost:3000/api - Admin UI –
http://localhost:3001(start separately, see below)
Stop & remove containers with:
npm run compose:downIf you prefer running Node processes on the host machine:
-
Start PostgreSQL – Use Docker or a local installation.
-
Configure environment – Adjust
.envfiles under each app. -
Generate Prisma client
cd apps/hotel-management-service-server npm run prisma:generate -
Run migrations & seed
npm run db:init
-
Start server
npm run start
-
Start Admin UI (new terminal):
cd apps/hotel-management-service-admin npm run start
By default the Admin UI expects the server at http://localhost:3000.
Change REACT_APP_SERVER_URL in apps/hotel-management-service-admin/.env if needed.
Default credentials (dev mode):
Username: admin
Password: admin
awesome-overcut/
├── apps/
│ ├── hotel-management-service-admin/ # React + React-Admin client
│ └── hotel-management-service-server/ # NestJS GraphQL API + Prisma
├── LICENSE
└── README.md
Each application is an isolated npm project with its own package.json, Dockerfile and README.
Inside apps/hotel-management-service-server:
| Script | Description |
|---|---|
npm run start |
Start NestJS server (uses .env values) |
npm run start:watch |
Start with hot-reload |
npm run docker:dev |
Quickly start a PostgreSQL container for local dev |
npm run db:init |
Apply Prisma migrations & seed data |
npm run prisma:generate |
Regenerate Prisma client after schema changes |
npm run build |
Transpile TypeScript to JS (dist/) |
npm run test |
Run Jest unit tests |
npm run package:container |
Build production Docker image |
Inside apps/hotel-management-service-admin:
| Script | Description |
|---|---|
npm run start |
Start Vite dev server (hot reload) |
npm run build |
Production build (dist/) |
npm run serve |
Locally preview the production build |
npm run lint |
ESLint with auto-fix |
npm run type-check |
TypeScript type checking (no emit) |
npm run package:container |
Build production Docker image |
The Prisma schema is located under apps/hotel-management-service-server/prisma/schema.prisma.
-
Create & apply a new migration:
npx prisma migrate dev --name <migration_name>
-
Seed data lives in
apps/hotel-management-service-server/scripts/seed.ts.
The server uses Jest:
cd apps/hotel-management-service-server
npm run test(There are currently no automated tests for the Admin UI.)
Pull requests are welcome! For major changes please open an issue first to discuss what you would like to change.
- Fork the repo & create your branch (
git checkout -b feature/xyz) - Commit your changes with clear messages
- Ensure
npm test(server) passes and linting is clean - Open a pull request
Please follow the existing coding style and keep the README up-to-date with your changes.
This project is licensed under the Apache License 2.0 – see the LICENSE file for details.
- Generated with Amplication – an open-source platform for building Node.js applications.
- Built with amazing open-source software:
- NestJS • Prisma • React • React-Admin • and many more.