Orderly is a monorepo for an order management system built for teams handling sales through manual channels such as social media, direct messages, and phone orders.
services/api: Laravel 12 backend APIservices/web: Vue 3 + TypeScript frontend
Core product areas:
- orders, shipments, and returns workflows
- inventory tracking and movement history
- product and customer management
- role-based access and team administration
- reporting and operational dashboards
You need the following installed locally:
- PHP 8.5+
- Composer
- Node.js 22+
- npm
- a database supported by the Laravel API configuration
gumfor the interactive development menu
gum is not bundled with this repository and must be installed separately.
Follow these steps in order on a fresh clone.
cd services/api
composer installcp .env.example .env
php artisan key:generateUpdate .env with your local database settings.
After every .env change, run:
php artisan config:cachecd ../web
npm installcd ../api
php artisan migrate
php artisan db:seedSeeding is needed for local development.
You can run the project either through the interactive menu or manually.
If gum is installed, run from the repository root:
make gummake dev is available as an alias for the same menu.
From the menu you can:
- install dependencies for the API and web app
- start both services together
- start the API only
- start the web app only
- run API tests
- run web tests
Use this option if you want the simplest day-to-day workflow.
Use this option if you do not want the menu or prefer direct commands.
cd services/api
php artisan serve
php artisan test --compact
php artisan formatcd services/web
npm run dev
npm run test
npm run type-check
npm run build
npm run lint- The interactive menu is implemented in
scripts/dev.sh. - Git hooks are stored in
.githooks/. - Business logic is intentionally kept in service classes rather than controllers.
- The frontend consumes the backend as a separate application, so both services need to be running for normal local development.
If you change services/api/.env and Laravel does not seem to pick it up, run:
cd services/api
php artisan config:cacheMake sure you ran composer install first in services/api.
Make sure gum is installed and available in your PATH.
Recheck your services/api/.env database credentials, then rerun:
cd services/api
php artisan config:cacheThis project is licensed under the MIT License. See LICENSE for details.