Event management system built as a mono-repo using pnpm. Functions as a Progressive Web App (PWA) for desktop-like experience. Features a powerful custom floor plan editor that allows creating and managing dynamic floor layouts for each property, with the ability to customize plans per event and modify them in real-time.
Available at: https://firetable-eu.web.app
Demo credentials:
- Owner: [email protected] / Owner@Demo!234,.
- Staff: [email protected] / Staff@Demo!234,.
- Manager: [email protected] / Manager@Demo!234,.
-
Organisation & Property Management
- Create and manage multiple organisations and their properties
- Role-based access control for users
-
Event Planning
- Floor plan designer with customizable elements (DJ booths, sofas, tables and much more)
- Create unique layouts for each property
- Customize floor plans for specific events
- Real-time editing and adjustment capabilities
- Rich selection of venue elements and furnishings
- Event scheduling and management
- Guest list creation and management
- Floor plan designer with customizable elements (DJ booths, sofas, tables and much more)
-
Reservation System
- Handle immediate and wait list reservations
- Track guest information and visit history
- Monitor consumption data
-
Digital Drink Cards
- Upload existing drink cards as PDFs
- Create custom cards using inventory items
- Generate QR code for easy access
- Web-hosted for seamless guest access
-
Analytics
- Track key metrics for reservations and events
- Analyze guest patterns and property performance
- Generate operational insights
-
Additional Features
- Dark mode support
- Multi-language interface
- Inventory management across properties
Here’s what the Floor Plan Editor looks like:
- frontend: Main web application
- backend: Firebase project
- functions: Cloud functions
- types: Shared type definitions
- floor-creator: Floor plan creation tool
- Frontend: Quasar (Vue.js framework)
- Backend: Firebase + Cloud Functions
- Install dependencies:
pnpm install
-
Configure Firebase:
- Rename
/backend/fb-config-template.json
tofb-config.json
- Add your Firebase credentials
- Rename
-
Start development:
- Firebase emulators:
pnpm run start:emulators
- Frontend server:
pnpm run dev:frontend
- Firebase emulators:
The app will be available at https://localhost:8080
Generate SSL certificates using mkcert
for HTTPS mode, or disable it in quasar.config.js
Required before first use:
- Visit Firebase Emulators UI (
http://localhost:3000/auth
) - Add new user with custom claim:
{ "role": "Administrator" }
- Use these credentials to log in
Or rather than starting from scratch and creating admin user manually, you can seed the database with sample data. For development and testing, you can populate the emulators with sample data:
- Ensure emulators are running:
pnpm run start:emulators
- run one of the seed scripts:
cd packages/functions
pnpm run seed # Creates 1 organization without admin user
pnpm run seed:admin # Creates 1 organization with admin user
The seeder supports the following command line arguments:
- -o, --organisations - Number of organizations to seed (default: 1)
- -a, --with-admin - Create an admin user (default: false)
- -h, --help - Show help information
When admin user is created, following credentials are available:
- Admin: [email protected] / ADMIN123
This will create:
- Multiple organizations with properties
- Users with various roles (all using password:
USER123
) - Sample events with floor plans
- Guest data with visit history
The seeding script automatically:
- Creates organization hierarchies
- Assigns properties to organizations
- Sets up users with appropriate roles and permissions
- Generates realistic event data
- Creates guest records with visit history
This makes it easy to start development with a fully populated database instead of an empty state. To clear the database and start fresh, you have to do it manually in the emulators UI. Emulators UI provides buttons to clear the database and authentication state.
Currently, supports English with partial German, Spanish and Croatian translations
Contributions are welcome! Please take a moment to review our Contributing Guidelines and ensure you understand our Code of Conduct before getting started.
By participating in this project, you agree to abide by our Code of Conduct, ensuring a respectful and collaborative environment for all contributors.