How rajasunrise/fiber-hotel works
This is a Go Fiber hotel API. Clients call public signup/login routes or JWT-protected CRUD routes; handlers parse and validate request data, use GORM against MySQL, and return JSON. The route table documents bookings, rooms, facilities, reviews, payments, promotions, employees, content, locations, and users. Sampled handlers confirm the database access pattern, while unsampled controller details and migration behavior are represented only at the directory or entry-point level.
Main entry points: routers.go Route table · database.go GORM connection · requeser.go Request models · review_controller.go Review CRUD
Components 20
API entry
- Fiber server
main.go - Route table
routers/routers.go
Identity
- JWT middleware
middleware/middleware.go - Signup and login
controllers - User CRUD
controllers/user_controller.go
Hotel operations
- Booking CRUD
controllers/booking_controller.go - Payment CRUD
controllers/payment_controller.go - Room CRUD
controllers/room_controller.go - Review CRUD
controllers/review_controller.go
Hotel catalog
- Facility CRUD
controllers/facility_controller.go - Promotion CRUD
controllers/promotion_controller.go - Employee CRUD
controllers/employee_controller.go - Location CRUD
controllers/location_controller.go - Content CRUD
controllers/content_controller.go
Persistence
- Request models
models/request/requeser.go - Entity models
models/entity - GORM connection
database/database.go - MySQL database
- Schema migrations
database/migrations/migrate.go
Other components
- API client
Connections 36
- API client → Fiber server: HTTP requests
- Fiber server → Schema migrations: runs migrations
- Fiber server → Route table: registers routes
- Route table → Signup and login: dispatches public
- Route table → JWT middleware: installs JWT
- JWT middleware → User CRUD: protects routes
- Route table → User CRUD: dispatches protected
- Route table → Booking CRUD: dispatches protected
- Route table → Payment CRUD: dispatches protected
- Route table → Room CRUD: dispatches protected
- Route table → Review CRUD: dispatches protected
- Route table → Facility CRUD: dispatches protected
- Route table → Promotion CRUD: dispatches protected
- Route table → Employee CRUD: dispatches protected
- Route table → Location CRUD: dispatches protected
- Route table → Content CRUD: dispatches protected
- Signup and login → GORM connection: accesses data
- User CRUD → GORM connection: accesses data
- Booking CRUD → GORM connection: accesses data
- Payment CRUD → GORM connection: accesses data
- Room CRUD → GORM connection: accesses data
- Review CRUD → GORM connection: accesses data
- Facility CRUD → GORM connection: accesses data
- Promotion CRUD → GORM connection: accesses data
- Employee CRUD → GORM connection: accesses data
- Location CRUD → GORM connection: accesses data
- Content CRUD → GORM connection: accesses data
- GORM connection → MySQL database: queries
- Schema migrations → GORM connection: updates schema
- Signup and login → Request models: parses requests
- Booking CRUD → Request models: parses requests
- Review CRUD → Request models: parses requests
- Promotion CRUD → Request models: parses requests
- Payment CRUD → Request models: parses requests
- Review CRUD → Entity models: queries models
- Promotion CRUD → Entity models: queries models