Simple, modern e-commerce platform for Bangladesh. Built to move fast now and scale later.
- Web storefront: product list, product details, cart, checkout
- Admin dashboard: product CRUD, order management, image uploads
- API-first design: web UI and future mobile app share the same API
- Payment: SSLCommerz
- Auth: Email/Password + Google Sign-In
- Founders and stakeholders who need product clarity
- Engineers and operators who need to run or extend the system
- Laravel (PHP)
- SQLite (initial DB, swappable later)
- Docker + docker-compose
- Nginx + PHP-FPM (containerized)
- Structured logging (JSON)
- AI tooling: Laravel Boost (assists AI-driven codegen, refactors, tests)
- Services:
app(PHP-FPM),web(Nginx) - Optional services in future:
queue,scheduler - Volumes:
storage/for uploads, SQLite DB file volume - Env: use
.envfor local,.env.prodfor production
cp .env.example .envdocker compose up --build- Open
http://localhost:8080
- Install PHP and Composer
composer installcp .env.example .envphp artisan key:generatephp artisan migratephp artisan serve
- Edit
.envfor runtime values - Set Google OAuth keys:
GOOGLE_CLIENT_ID,GOOGLE_CLIENT_SECRET,GOOGLE_REDIRECT_URI - Set SSLCommerz keys and callbacks:
SSLCOMMERZ_STORE_ID,SSLCOMMERZ_STORE_PASSWORD,SSLCOMMERZ_*_URL
GET /api/v1/health->{ "status": "ok" }GET /api/v1/products-> product listGET /api/v1/products/{slug}-> product detail- Cart endpoints require Sanctum auth
POST /api/v1/cart/items-> add itemPATCH /api/v1/cart/items/{id}-> update qtyDELETE /api/v1/cart/items/{id}-> remove
- PHPUnit:
php artisan test - Playwright (UI + API):
npm run test:e2e - Playwright expects a running app
- Required env for E2E:
PLAYWRIGHT_BASE_URL - Admin UI E2E needs
E2E_ADMIN_EMAILandE2E_ADMIN_PASSWORD
- Build containers in CI or on server
- Configure
.envfor production secrets and URLs - Use
docker compose up -d --build - Ensure HTTPS termination (reverse proxy or load balancer)
- Mount persistent volumes for
storage/and database file
- Use cPanel File Manager or Git deployment to upload the project
- Set the web root to
public/ - If required, point
public_htmltopublic/via symlink or document root setting - Ensure PHP version matches Laravel requirements
- Configure
.envwith production settings - Run migrations from terminal (if available) or via a one-time CLI task
- Point
storage/to a writable path and runphp artisan storage:link - Use cPanel SSL for HTTPS
- First release: stable web storefront and admin dashboard
- Next: mobile app using the same API
- Future: swap SQLite to MySQL/PostgreSQL, add caching, add queue workers
- Keep docs lean and useful
- Follow
AGENTS.mdfor coding and testing rules - Keep Laravel conventions; avoid over-engineering
- See
PLAN.mdandTASKS.mdfor roadmap and execution flow
- Format:
feat/refactor/fix[phase_id-task-id]: short message - Optional: add a second line with further description if needed
- Example:
feat[P4-T03]: storefront list view - Branching: no new branches for now; all work happens on
master