A comprehensive event management and booth reservation system for food carnival events
Features โข Installation โข Usage โข Tech Stack โข License
The Hong Kong Food Carnival platform is a full-featured web application designed to streamline event management, booth reservations, and vendor operations for large-scale food carnival events. Built with Node.js and Express, it offers real-time updates, interactive booth mapping, QR code ticketing, and comprehensive analytics.
- Interactive Booth Exploration - Visual floor plans with real-time availability
- Smart Booking System - Reserve premium, standard, or economy booths
- Digital Ticketing - QR code-based tickets with instant generation
- Secure Payments - Multiple payment methods supported
- Profile Management - Track bookings, transactions, and preferences
- Real-time Updates - Live booth availability via WebSocket
- Event Management - Create and manage multiple carnival events
- Booth Configuration - Dynamic booth editor with tier management
- User Administration - Comprehensive user management dashboard
- Transaction Monitoring - Real-time payment and booking tracking
- Analytics Dashboard - Revenue insights, booking trends, and statistics
- QR Scanner - Validate tickets and manage check-ins
- Themed Booth Zones - Wellness, Snacks, Global Flavors, Organic, Desserts, Beverages
- Multi-floor Support - Harbour View Hall & Sky Garden Pavilion
- Responsive Design - Mobile-friendly interface
- Interactive Maps - Color-coded booth status visualization
- Node.js 18.x or higher
- npm or yarn package manager
- Clone the repository
git clone https://github.com/YOUR_USERNAME/BoothSystem.git
cd BoothSystem- Install dependencies
npm install- Configure environment (optional)
# Create .env file
PORT=3000
SESSION_SECRET=your-secret-key
NODE_ENV=development- Start the server
npm start- Access the application
http://localhost:3000
Admin Account:
- Username:
admin - Password:
adminpass
Test User Account:
- Username:
TestUser - Password:
TestUser123
| Route | Description |
|---|---|
/ |
Home & Login |
/register |
New user registration |
/dashboard |
User dashboard |
/booths/:eventId |
Browse and book booths |
/payment/:bookingId |
Secure payment processing |
/digital-ticket/:bookingId |
View digital ticket |
/admin/* |
Admin panel (requires admin role) |
- Express.js 5.x - Web application framework
- Socket.IO 4.x - Real-time bidirectional communication
- EJS - Server-side templating
- bcrypt - Password hashing
- Express Session - Session management
- Multer - File upload handling
- Vanilla JavaScript - Client-side interactivity
- Chart.js - Data visualization
- CSS3 - Modern styling and animations
- QRCode - QR code generation
- PDFKit - PDF ticket generation
- json2csv - Data export functionality
- uuid - Unique identifier generation
- JSON File Storage - Lightweight data persistence (development)
- In-memory caching for serverless deployments
minproj/
โโโ api/ # Serverless function entry
โ โโโ index.js
โโโ data/ # Data layer
โ โโโ db.json # JSON database
โ โโโ store.js # Data access functions
โโโ public/ # Static assets
โ โโโ css/
โ โ โโโ styles.css # Application styles
โ โโโ js/ # Client-side scripts
โ โ โโโ analytics-dashboard.js
โ โ โโโ booth-editor.js
โ โ โโโ booth-map.js
โ โ โโโ dashboard.js
โ โ โโโ qr-scanner.js
โ โโโ uploads/ # User uploads
โโโ views/ # EJS templates
โ โโโ partials/ # Reusable components
โ โโโ admin-*.ejs # Admin pages
โ โโโ booths.ejs # Booth selection
โ โโโ dashboard.ejs # User dashboard
โ โโโ digital-ticket.ejs # Ticket display
โ โโโ login.ejs # Authentication
โ โโโ payment.ejs # Payment processing
โ โโโ profile.ejs # User profile
โโโ server.js # Main application server
โโโ package.json # Dependencies
โโโ README.md # Documentation
- Three-tier system: Premium ($820), Standard ($620), Economy ($480)
- 40 booths across two floors with themed zones
- Real-time availability tracking
- Visual status indicators: Available, Booked, Processing
- Credit/Debit card support
- PayPal integration
- Bank transfer options
- Secure transaction logging
- Unique QR codes for each booking
- Downloadable PDF tickets
- Email delivery ready
- Admin QR scanner for validation
- Revenue tracking by tier
- Booking trends over time
- Popular booth analysis
- Transaction history export (CSV)
- Push code to GitHub
- Connect repository to Render
- Deploy as Web Service
render.yamlconfiguration included
- Railway.app - Easy deployment with CLI
- Fly.io - Global edge deployment
- Heroku - Traditional PaaS
- DigitalOcean App Platform - Managed infrastructure
Note: Vercel serverless deployment requires additional configuration for sessions and file uploads.
- bcrypt password hashing
- Session-based authentication
- CSRF protection ready
- Secure cookie configuration
- Input validation and sanitization
GET /- Home pagePOST /login- User authenticationPOST /register- User registrationGET /booths/:eventId- View available boothsPOST /bookings- Create new booking
GET /dashboard- User dashboardGET /profile- User profilePOST /profile/upload- Avatar uploadGET /transactions- Transaction history
GET /admin/dashboard- Admin overviewGET /admin/analytics- Analytics dashboardGET /admin/booth-editor/:eventId- Edit booth configurationPOST /admin/events- Create new eventDELETE /admin/users/:userId- Remove user
This project is licensed under the ISC License.
- Cheng tsz hung and Awwab Hamam
- Serverless deployments (Vercel) require external database for data persistence
- Socket.IO features disabled in serverless environments
- File uploads stored in
/tmpdirectory on serverless platforms
- PostgreSQL/MongoDB integration
- Email notification system
- Mobile app (React Native)
- Vendor management portal
- Multi-language support
- Advanced analytics with ML predictions
- Social media integration
- Live event streaming
โญ Star this repository if you find it helpful!
Made with Express.js โข Socket.IO โข Chart.js