🔎 View can view an app overview on the github pages. (https://blaxzter.github.io/room-booking-tool/)
BookiTool is a room booking tool that allows users to book rooms, manage bookings, and receive notifications.
It is built with Directus, a headless CMS, Vue.js with shadcn-vue for components, and Tailwind CSS for styling.
The tool is designed to be easy to use and customizable, with features like email verification, anonymous access, and Telegram notifications.
You can try out the tool by visiting the bookitool.net website which runs in the demo mode.
- Room Booking: Users can book rooms for specific dates and times.
- Booking Management: Admins can view and manage all bookings.
- User Authentication: Users can create accounts and log in.
- Notifications: Users can receive notifications via email or Telegram.
- Demo Mode: Prohibits file upload, limits object / booking creations and allows users to request a upgrade.
- Email Verification for booking requests
- Multiple bookings for the same room at the same time
- Password reset functionality for users
The fastest way to get started is using our installation script:
curl https://raw.githubusercontent.com/Blaxzter/room-booking-tool/refs/heads/main/setup.sh | bash
- Downloads required configuration files (docker-compose.yml, config.env, .env)
- Starts Docker containers
- Initializes Directus with the correct schema
- Configures system settings
- Sets up proper user roles
To enable Telegram notifications:
- Get a Telegram bot token from @BotFather
- Run the setup script again with your token:
./setup.sh
- Choose 'y' when prompted about Telegram setup
- Enter your bot token
If you prefer to set everything up manually:
-
Clone the repository:
git clone https://github.com/Blaxzter/room-booking-tool.git cd room-booking-tool
-
Copy configuration files
cp .env.example .env
- Edit the
.env
file and config file to configure your settings.
- Edit the
-
Start the containers:
docker-compose up -d
-
Initialize Directus schema:
docker-compose exec directus npx directus-sync push \ -u http://localhost:8055 \ -e [email protected] \ -p yourpassword