New Filament page at /admin/route-forge: compose dozens of scheduled flights across five topologies (Hub→Spokes, Spokes→Hub, Hub & Spokes, Mesh, Chain), preview rows live, lint for operational issues, commit as one Flight Bundle in a single atomic transaction. Frontend: TypeScript + Preact 10 + @preact/signals + @date-fns/tz. Separate Vite entry, 26.69 KB gzip (well under the 60 KB target). Client-side generator + 12 lint rules; localStorage draft resume. Backend: RouteForge service + 12 PHP lint rule classes + duplicate checker + commit orchestration (Flight::withoutEvents + single bundle-level activity log). Six endpoints under /admin/route-forge/api/, gated by permission:create:flight. Bundle picker is dual-mode — type a new name to create, or pick an existing bundle to append flights to (read-only summary, server skips the bundle persist step and stamps the existing id onto new flights). Airport picker: click-to-open dropdown with 50-result alpha pages, checkbox rows for multi-select, prefix-only search via new searchMode=prefix opt-in on the shared AirportSearchQueryV1 (/api/airports default substring behavior preserved). Quality: tsc strict mode clean, oxlint 0/0, phpstan no errors, pint passing. Pest scaffolding deferred per workflow. Tracking: openspec/changes/route-forge — 66/106 tasks complete (sections 1, 2, 4, 5, 6, 7, 8; Pest 4.6/5.3/6.4 + sections 9–12 remaining). # Conflicts: # package-lock.json # package.json |
||
|---|---|---|
| .github | ||
| .hooks | ||
| app | ||
| bin | ||
| bootstrap | ||
| config | ||
| database | ||
| docs | ||
| modules | ||
| public | ||
| resources | ||
| routes | ||
| scripts | ||
| storage | ||
| tests | ||
| .editorconfig | ||
| .env.example | ||
| .gitignore | ||
| .htaccess | ||
| .oxfmtrc.json | ||
| .oxlintrc.json | ||
| artisan | ||
| bun.lock | ||
| CHANGELOG.md | ||
| compose.sail.yml | ||
| composer.json | ||
| composer.lock | ||
| Directory.Build.props | ||
| docker-compose.example.yml | ||
| Dockerfile | ||
| intellij_style.xml | ||
| justfile | ||
| LICENSE | ||
| Makefile | ||
| package-lock.json | ||
| package.json | ||
| phpstan.neon | ||
| phpunit.xml | ||
| pint.json | ||
| Procfile | ||
| README.md | ||
| rector.php | ||
| symfony.lock | ||
| tsconfig.json | ||
| version.json | ||
| vite.config.js | ||
phpVMS 8
phpVMS is a PHP application to run and simulate an airline. It allowed users to register, view flight schedules that you create, and file flight reports, built on the Laravel framework. The latest documentation, with installation instructions is available on the phpVMS documentation site.
Installation
A full distribution, with all the composer dependencies, is available at this GitHub Releases link.
Requirements
- PHP 8.3+, extensions:
- cURL
- JSON
- fileinfo
- mbstring
- openssl
- pdo
- tokenizer
- intl
- zip
- Database:
- MySQL 5.7+ (or MySQL variant, including MariaDB and Percona)
View more details on requirements
Installer
- Upload to your server
- Visit the site, and follow the link to the installer
Development Environment with Docker
A full development environment can be brought up using Docker and Laravel Sail, without having to install composer/npm locally
make docker-test
# **OR** with docker directly
docker run --rm \
-u "$(id -u):$(id -g)" \
-v "$(pwd):/var/www/html" \
-w /var/www/html \
laravelsail/php84-composer:latest \
composer install --ignore-platform-reqs
# Then you can start sail
./vendor/bin/sail up
Then go to http://localhost.
Instead of repeatedly typing vendor/bin/sail to execute Sail commands, you may wish to configure a shell alias that allows you to execute Sail's commands more easily:
alias sail='[ -f sail ] && sh sail || sh vendor/bin/sail'
Then you can execute php, artisan, composer, npm, etc. commands using the sail prefix:
# PHP commands within Laravel Sail...
sail php --version
# Artisan commands within Laravel Sail...
sail artisan about
# Composer commands within Laravel Sail...
sail composer install
# NPM commands within Laravel Sail...
sail npm run dev
To interact with databases (MariaDB, Redis...), please refer to the Laravel Sail documentation
Building JS/CSS assets
Yarn is required, run:
make build-assets
This will build all the assets according to the webpack file.
Laravel Boost
If you want to use AI agents for your development workflow, please ensure you install Laravel Boost by running the following command:
php artisan boost:install
Contributors
Thank you to everyone who've contributed to phpVMS!