3.2 KiB
3.2 KiB
🚀 QUICK START - Server Setup
Bước 1: Copy file .env
cd d:/hotel-booking/server
cp .env.example .env
File .env đã được tạo sẵn với cấu hình mặc định
Bước 2: Tạo Database (nếu chưa có)
# Mở MySQL command line
mysql -u root -p
# Tạo database
CREATE DATABASE hotel_db;
# Thoát
exit;
Bước 3: Chạy Migrations
cd d:/hotel-booking/server
npm run migrate
Lệnh này sẽ tạo các bảng:
- roles
- users
- refresh_tokens
- rooms
- room_types
- bookings
- payments
- services
- service_usages
- promotions
- checkin_checkout
- banners
- password_reset_tokens
- reviews
Bước 4: (Optional) Seed Data
npm run seed
Lệnh này sẽ tạo:
- 3 roles: admin, staff, customer
- Demo users
- Demo rooms & room types
- Demo bookings
Bước 5: Start Server
npm run dev
Bạn sẽ thấy:
✅ Database connection established successfully
📊 Database models synced
🚀 Server running on port 3000
🌐 Environment: development
🔗 API: http://localhost:3000/api
🏥 Health: http://localhost:3000/health
Bước 6: Test API
Health Check
Mở browser: http://localhost:3000/health
Test Login (sau khi seed data)
curl -X POST http://localhost:3000/api/auth/login \
-H "Content-Type: application/json" \
-d '{"email":"admin@hotel.com","password":"Admin123"}'
⚠️ Troubleshooting
Lỗi: "Access denied for user 'root'"
Giải pháp: Sửa DB_PASS trong file .env
DB_PASS=your_mysql_password
Lỗi: "Unknown database 'hotel_db'"
Giải pháp: Tạo database thủ công (Bước 2)
Lỗi: "Port 3000 already in use"
Giải pháp: Đổi PORT trong .env
PORT=3001
Lỗi: "Cannot find module"
Giải pháp: Cài lại dependencies
npm install
📝 Next Steps
- ✅ Server đang chạy
- ✅ Database đã setup
- ✅ API endpoints sẵn sàng
- 🔜 Test với frontend login form
- 🔜 Implement các API còn lại
🧪 Test với Postman
Collection: Hotel Booking API
1. Register
POST http://localhost:3000/api/auth/register
Body (JSON):
{
"name": "Test User",
"email": "test@example.com",
"password": "Test1234",
"phone": "0123456789"
}
2. Login
POST http://localhost:3000/api/auth/login
Body (JSON):
{
"email": "test@example.com",
"password": "Test1234",
"rememberMe": true
}
3. Get Profile
GET http://localhost:3000/api/auth/profile
Headers:
Authorization: Bearer YOUR_ACCESS_TOKEN
✅ Checklist
- MySQL đang chạy
- File .env đã tạo và cấu hình đúng
- Database hotel_db đã tạo
- Migrations đã chạy thành công
- Server đang chạy (port 3000)
- Health check trả về 200 OK
- Frontend .env đã có VITE_API_URL=http://localhost:3000
- Frontend đang chạy (port 5173)
🎯 Ready to Test Login!
- Server: http://localhost:3000 ✅
- Client: http://localhost:5173 ✅
- Login page: http://localhost:5173/login ✅
- API endpoint: http://localhost:3000/api/auth/login ✅
Tất cả sẵn sàng! Giờ có thể test login form từ frontend! 🚀