Hotel 48 merupakan sistem informasi manajemen reservasi hotel berbasis web yang dirancang untuk memodernisasi proses pemesanan kamar dan pengelolaan operasional hotel. Sistem ini memfasilitasi pelanggan untuk mencari ketersediaan kamar, melakukan reservasi secara online, dan memilih metode pembayaran digital. Bagi administrator, sistem ini menyediakan fitur manajemen tipe kamar, unit fisik, serta laporan transaksi secara real-time. Hotel 48 bertujuan untuk menggantikan proses reservasi manual dengan solusi digital yang efisien, aman, dan terintegrasi dengan Google OAuth serta simulasi payment gateway.
- Next.js 15 (App Router)
- TypeScript
- Prisma ORM
- PostgreSQL (Neon)
- NextAuth.js v5 (Google OAuth & Credentials)
- Tailwind CSS v4
- Shadcn/ui (UI Components)
- React Hook Form + Zod (Form Validation)
HOTEL-48/
├── app/
│ ├── actions/ # Server actions
│ ├── api/ # API routes
│ ├── login/ # Login page
│ ├── register/ # Register page
│ ├── layout.tsx # Root layout
│ └── page.tsx # Homepage
├── components/
│ ├── auth/ # Auth components
│ ├── layout/ # Layout components (Header, Footer)
│ ├── providers/ # Context providers
│ └── ui/ # UI components (Button, Card, etc)
├── lib/
│ ├── validations/ # Zod schemas
│ ├── db.ts # Prisma client
│ ├── utils.ts # Utility functions
│ └── date-utils.ts # Date utilities
├── prisma/
│ └── schema.prisma # Database schema
├── types/
│ └── next-auth.d.ts # NextAuth type definitions
├── .env # Environment variables
├── .env.example # Example env file
├── auth.ts # NextAuth configuration
├── middleware.ts # Route protection
└── vercel.json # Vercel deployment config
✅ Selesai:
- Infrastructure setup (Next.js, Prisma, Neon DB)
- Authentication system (Login, Register, Google OAuth)
- Database schema dan migrations
- Layout components (Header, Footer)
- Landing page
🚧 Dalam Progress:
- Customer features (Search, Booking, Payment)
- Admin features (Room/Unit management, Reports)
- PDF invoice generation
- Node.js 18+ dan npm
- PostgreSQL database (atau akun Neon)
- Google OAuth credentials (opsional)
-
Clone repository:
git clone https://github.com/franzxml/hotel-48.git cd hotel-48 -
Install dependencies:
npm install
-
Setup environment variables:
cp .env.example .env
Edit
.envdan isi:DATABASE_URL: Connection string PostgreSQL/NeonNEXTAUTH_SECRET: Generate denganopenssl rand -base64 32NEXTAUTH_URL:http://localhost:3000(development)GOOGLE_CLIENT_ID&GOOGLE_CLIENT_SECRET: Dari Google Cloud Console
-
Setup database:
npx prisma generate npx prisma db push
-
Jalankan development server:
npm run dev
-
Akses aplikasi: Buka browser dan kunjungi http://localhost:3000
npm run build
npm start-
Push ke GitHub (sudah otomatis terhubung)
-
Import project ke Vercel:
- Kunjungi vercel.com
- Import repository
franzxml/hotel-48
-
Setup environment variables di Vercel:
DATABASE_URLNEXTAUTH_SECRETNEXTAUTH_URL(gunakan domain Vercel)GOOGLE_CLIENT_IDGOOGLE_CLIENT_SECRET
-
Deploy:
- Vercel akan otomatis build dan deploy
- Jalankan Prisma migrations:
npx prisma migrate deploy(via Vercel CLI)
Website dapat diakses melalui:
- Production (Vercel): https://hotel-48-seven.vercel.app/
Versi PHP lama tersimpan di git tag php-final-version. Untuk melihat:
git checkout php-final-versionDikembangkan oleh: @franzxml & Kings-Bilbil
Tech Stack: Next.js 15 + TypeScript + Prisma + PostgreSQL + NextAuth.js