কসাই লাগবে is a Bengali-first Qurbani butcher directory and registration platform for Bangladesh. Users can search for registered butchers by location, while butchers can register and maintain their profile information.
The Laravel application lives inside the src/ directory. Docker, nginx, PHP, and PostgreSQL setup files live at the repository root.
- Bengali-first landing page and user interface
- Searchable butcher directory
- District and area-based filtering
- Combined login and registration flow
- Butcher profile fields such as price, team size, district, and address
- Auth-protected phone number reveal flow
- Static support pages such as about, privacy policy, and registration rules
- Laravel 13
- PHP 8.3
- PostgreSQL
- Inertia.js
- React 19
- Vite 8
- Tailwind CSS 4
- Docker and Docker Compose
This is the recommended way to run the project locally because Docker provides PHP, PostgreSQL, nginx, Redis, Composer, and Node inside containers.
- Git
- Docker
- Docker Compose
git clone git@github.com:nahidprince7/koshai-lagbe.git
cd koshai-lagbeIf you prefer HTTPS:
git clone https://github.com/nahidprince7/koshai-lagbe.git
cd koshai-lagbeAfter cloning, you can run the full Docker setup with:
cp .env.docker .env
cp src/.env.example src/.env
docker compose up -d --build
docker compose exec app composer install
docker compose exec app npm install
docker compose exec app php artisan key:generate
docker compose exec app php artisan migrate --seed
docker compose restart appThen open http://localhost:8000.
Create the root Docker environment file:
cp .env.docker .envCreate the Laravel environment file:
cp src/.env.example src/.envThe default Docker values are already configured for PostgreSQL:
DB_CONNECTION=pgsql
DB_HOST=db
DB_PORT=5432
DB_DATABASE=koshai_lagbe_db
DB_USERNAME=koshai_lagbe_user
DB_PASSWORD=secret123docker compose up -d --builddocker compose exec app composer installdocker compose exec app npm installdocker compose exec app php artisan key:generatedocker compose exec app php artisan migrate --seedVisit:
http://localhost:8000
The Vite dev server is exposed at:
http://localhost:5173
In normal Docker development, open the app through http://localhost:8000.
Start containers:
docker compose up -dStop containers:
docker compose downView logs:
docker compose logs -fRun Artisan commands:
docker compose exec app php artisan route:listRun tests:
docker compose exec app composer testBuild frontend assets:
docker compose exec app npm run buildReset and reseed the database:
docker compose exec app php artisan migrate:fresh --seedUse this path only if you want to run PHP, Node, and PostgreSQL directly on your machine.
- PHP 8.3+
- Composer
- Node.js and npm
- PostgreSQL
cd src
composer install
npm installcp .env.example .env
php artisan key:generateUpdate these values in src/.env for your local PostgreSQL database:
DB_CONNECTION=pgsql
DB_HOST=127.0.0.1
DB_PORT=5432
DB_DATABASE=koshai_lagbe_db
DB_USERNAME=your_postgres_user
DB_PASSWORD=your_postgres_passwordCreate the database in PostgreSQL before running migrations.
php artisan migrate --seedcomposer run devLaravel will run on its local development URL, and Vite will run alongside it.
koshai-lagbe/
├── docker/ # Docker, nginx, PHP, supervisor config
├── docker-compose.yml # Local Docker services
├── src/ # Laravel application root
│ ├── app/ # Controllers, middleware, models
│ ├── database/ # Migrations and seeders
│ ├── resources/js/ # Inertia React pages and components
│ ├── resources/css/ # Tailwind entry file
│ ├── routes/ # Web and API routes
│ └── public/ # Public Laravel assets
└── README.md
/- landing page/directory- butcher directory/auth- login and registration/about- about page/privacy-policy- privacy policy/registration-rules- registration rules/dashboard- authenticated dashboard
- Edit Laravel, React, and Tailwind source files inside
src/. - Do not edit generated files in
src/public/build/directly. - Directory search uses PostgreSQL-specific
ilike, so PostgreSQL is recommended for local development. - The app uses Laravel session authentication for web routes.
- Butcher phone numbers should stay protected for guest users.
If the app container starts before dependencies are installed, run:
docker compose exec app composer install
docker compose exec app npm install
docker compose restart appIf Laravel reports a missing app key:
docker compose exec app php artisan key:generateIf the database connection fails, confirm that the root .env, src/.env, and docker-compose.yml database values match.
If frontend assets are missing or stale:
docker compose exec app npm run buildThis project is open-sourced under the MIT license unless stated otherwise.