ReservationProjectV2 is a web-based event reservation system, offering an interactive interface for creating, managing, and searching for events. The application uses a modern technology stack including Docker, Laravel, Vue.js, and Tailwind CSS, and leverages MeiliSearch for efficient event data handling.
- Event Creation: Users can create events with details like title, description, dates, and location.
- Seat Map: Interactive seat map allowing users to arrange seats and tables.
- Event Search: Search functionality to quickly find events.
- Real-Time Notifications: Notifications for actions such as event creation and deletion.
- Responsive Design: Built with Tailwind CSS for a responsive, mobile-friendly user experience.
- Backend Integration: Laravel backend for handling business logic, database operations, and API endpoints.
These instructions will guide you through setting up the project on your local machine for development and testing purposes.
- Windows 11 with WSL2 and Ubuntu LTS
- Docker with WSL2 integration
- Git
-
WSL2 and Ubuntu Setup:
- Install WSL2 and Ubuntu LTS.
- Enable Docker WSL2 integration and allow Ubuntu (or your chosen Linux version).
-
Project Setup:
-
Open your Terminal and clone the repository:
git clone https://github.com/devblaze/ReservationProjectV2.git -
Change directory to the project folder:
cd ReservationProjectV2 -
You need to install the Laravel Sail.
docker run --rm \ -u "$(id -u):$(id -g)" \ -v $(pwd):/var/www/html \ -w /var/www/html \ laravelsail/php81-composer:latest \ composer install --ignore-platform-reqs -
You can also run the following command to use
sail up -dand not./vendor/bin/sail up.alias sail='sh $([ -f sail ] && echo sail || echo vendor/bin/sail)'
-
Start the Docker environment with Laravel Sail:
sail up -d -
Install PHP dependencies:
sail composer install
-
Install NPM packages:
sail npm install
-
Set up your environment variables in .env file (use .env.example as a template). Generate an application key:
sail artisan key:generate
-
Run migrations and seed the database (if applicable):
sail artisan migrate --seed
-
Import the event model to Laravel Scout:
sail artisan scout:import
-
Start the frontend server:
sail npm run dev # In a separate terminal
-
-
Environment Configuration:
- Add the following lines to your
.envfile:SCOUT_DRIVER=meilisearch MEILISEARCH_HOST=http://<meilisearch-container-name>:7700/
- Add the following lines to your
You can generate or reset your database and fill it with dummy data with the following command:
sail artisan migrate:fresh --seedYou also need to update your scout in order to have your data in the meilisearch.
sail artisan scout:flush "App\Models\<YourModel>"
~ All [App\Models\Event] records have been flushed.
sail artisan scout:import "App\Models\<YourModel>"To start the application, use the following command:
sail -up -d
sail npm run devThe application will be accessible at http://localhost.
For now we have only end-to-end tests you can download the standalone cypress from here.
Create a new project and place the eventManagment.cy.js from the project /ReservationProjectV2/tests/cypress/e2e.
- Laravel - The backend framework used
- Vue.js - Frontend JavaScript framework
- Tailwind CSS - CSS framework for styling
- Docker - Containerization platform
- MeiliSearch - Search engine
Please read CONTRIBUTING.md for the process for submitting pull requests to us.
For the versions available, see the tags on this repository.
- Nikolaos Christos Antoniadis - Initial work - Nick Antoniadis
This project is licensed under the MIT License - see the LICENSE.md file for details.