Boolbnb is my modification in the final project of the boolean.careers course, using a frontend exclusively with TypeScript React, Tailwind CSS and a backend with Laravel 12.
To start the project, follow these steps:
- Clone the repository:
git clone https://github.com/andmalt/BoolBnB
cd BoolBnB- Install backend dependencies using Composer:
composer install- Install frontend dependencies using npm:
npm install- Run the development server:
npm run dev- Set up your
.envfile for database configuration and other environment variables. You can copy the example file:
cp .env.example .env- Generate an application key:
php artisan key:generate- Run database migrations and seeders(fake data if needed):
php artisan migrate
php artisan db:seed- Start the Laravel development server:
php artisan serve- Start the Scheduler (to run scheduled tasks):
php artisan schedule:workNow you can access the application at http://127.0.0.1:8000.
-
PHP >= 8.4
-
Composer
-
Node.js >= 22.x
-
MySQL or any other database supported by Laravel
-
Minio (for local S3-compatible storage)
-
MINIO CLI (for managing S3 buckets) important to set the bucket and
policies
This project uses MinIO locally as an S3-compatible storage. Sets it to public download (anonymous GET), so images can be displayed in the browser without any authorization.
The initialization is done via MinIO Client (mc) using:
mc anonymous set download local/boolbnbThis enables unauthenticated read access (public GET) for listing in the bucket. For more information about MinIO policies, see the official documentation.
Make sure your .env contains something like:
FILESYSTEM_DISK=s3
AWS_ACCESS_KEY_ID=minioadmin
AWS_SECRET_ACCESS_KEY=minioadmin
AWS_DEFAULT_REGION=us-east-1
AWS_BUCKET=boolbnb
AWS_ENDPOINT=http://minio:9000
AWS_USE_PATH_STYLE_ENDPOINT=true
AWS_URL=http://localhost:9000/boolbnbLaravel uses the S3 driver (Flysystem) for MinIO as well. Laravel.
Make sure to configure your database and other environment variables, principally AWS credentials, in the .env file before running migrations and seeders.
This project can be started entirely with Docker (Laravel + MySQL + MinIO + Scheduler).
Docker >= 29.x
docker compose up -d --buildNow open:
- App: http://localhost:8080
- MinIO Console: http://localhost:9001 (user/pass: minioadmin / minioadmin)
- MinIO S3 endpoint: http://localhost:9000