This project was made to introduce my skills working with Laravel.
Simple app that allows users to book excursions and for Tour companies - manage their activities, assign guides, etc.
The following functionality was implemented in this project:
- Admin user can create new companies;
- Companies owners can send invite mail to other employees with link through which role will be assigned to user after registration (guide or company admin role);
- Companies owners can manage activities and assign guides to them;
- Guests can view list of actual tours;
- Auth users can book a tour, cancel it, view the activity's guide contacts;
- After booking a tour user gets a confirmation email;
- Assigned to activity guide can download PDF file with list of tourists and tour details.
All features are covered by tests.
- PHP 8.1
- Laravel 10.0
- MySql 8.0.30
- Redis 2.2
To run app localy:
- Use
git clone
to clone this repository locally. - Copy
.env.example
file and paste to your.env
file. - Run
composer install
command. - Generate a key using command
php artisan key:generate
if needed. - Set up your
.env
file with your MySQL connection and Mailing. (I used MailTrap for example). - Run
php artisan migrate --seed
command. - Run
php artisan serve
. - In new CLI window enter
npm install
&npm run dev
.
If you want to fill app with some data:
- Run
php artisan db:seed --class=ActivitySeeder
- Run command
php artisan storage:link
.
To run tests:
- Copy
.env.example
file and paste to your.env.testing
file. - Run
php artisan migrate --env=testing --seed
command. - Use command
php artisan test
.