Booking System
Turnkey multi-resource booking system.
Vue.js 3
Node.js
PostgreSQL
Docker
13 Languages
Responsive
Key Features
Custom Calendar with 6 Views
Month, Week, Day, Timeline, Resource Month, Resource Grid. 100% custom-built, no FullCalendar.
Full Drag & Drop
Create, move, and resize bookings via drag and drop. Tablet touch support included.
19 Field Types
Text, select, file/image, address, video, color, slider, checkbox, and more.
13 Languages
FR, EN, DE, ES, IT, PT, NL, PL, RU, AR, JA, ZH, TR. Instant switching.
Mobile-First Responsive
Hamburger menu, bottom sheet, swipe, tap-to-create. Adapted for phone, tablet, and desktop.
Docker in 1 Command
make up — PostgreSQL, API, Frontend nginx, Mailpit. Up and running in 2 minutes.
MinIO Upload
Upload files/images to MinIO (S3) with preview, size controls, and lightbox.
Automated Emails
Client confirmation, admin notification, and automatic D-1 reminder via SMTP.
Quick Start
# Start all services
make up
# Create demo data
make seed-demo
# Access the application
# Frontend : http://localhost:5173
# Admin : admin@booking.local / admin123
Tech Stack
| Layer | Technology |
|---|---|
| Frontend | Vue.js 3, Tailwind CSS v4, Pinia, Vue Router |
| Backend | Node.js 20, Express.js, Sequelize ORM |
| Database | PostgreSQL 16 |
| Storage | MinIO (S3-compatible) |
| Nodemailer + Mailpit (dev) | |
| Infrastructure | Docker Compose, nginx |
Responsive Breakpoints
| Screen | Width | Calendar Views | Interactions |
|---|---|---|---|
| Phone | < 640px | Month (dots), Day | Tap, swipe |
| Tablet | 640-1023px | All (6 views) | Touch drag |
| Desktop | ≥ 1024px | All (6 views) | Mouse drag & drop |
Documentation
- Custom Fields — 19 types, storage, validation, upload
- Responsive Design — Breakpoints, touch, mobile UX
- API Reference — All endpoints with examples
- Changelog — Version history