Go to file
Nabeel Shahzad 5cc77beb41
refactor(flight): expose departure_time/arrival_time directly
Remove `$hidden = ['departure_time', 'arrival_time']` from the Flight
model. The structured TIME columns are public surface and should be
queryable / inspectable via the model's default serialization, not
hidden behind the resource-only `dpt_time` / `arr_time` projection.

API surface (now)
- `departure_time` / `arrival_time`: emitted by Eloquent as `H:i:s`
  strings via the datetime:H:i:s cast.
- `dpt_time` / `arr_time`: still projected by FlightResource as legacy
  `Hi` strings for backward-compat consumers.

Tests
- FlightResourceTimeFieldsTest now asserts presence of all four keys.
- FlightListShapeTest's assertJsonStructure adds the four time keys
  to lock the API contract.

All gates green; affected suites: 97 tests pass.
2026-05-23 12:05:09 -05:00
.github Updating styling and looks of the installer/admin/system filament pages (#2211) 2026-05-20 11:05:32 -05:00
.hooks fix(pre-commit): add '--' to npm commands for proper argument handling 2026-04-25 10:15:33 +02:00
app refactor(flight): expose departure_time/arrival_time directly 2026-05-23 12:05:09 -05:00
bin Updating styling and looks of the installer/admin/system filament pages (#2211) 2026-05-20 11:05:32 -05:00
bootstrap [8.x] refactor: migrate to the new modern laravel structure (#2207) 2026-05-07 14:58:11 -05:00
config feat(schema-modernization): foundations for RouteForge 2026-05-23 12:05:09 -05:00
database refactor(flight): move dpt_time/arr_time to API resource only 2026-05-23 12:05:09 -05:00
docs refactor(schema-modernization): apply PR #2215 review feedback 2026-05-23 12:05:09 -05:00
modules refactor: remove VaCentral package and update airport lookup implementation 2026-05-22 18:27:54 +02:00
public Updating styling and looks of the installer/admin/system filament pages (#2211) 2026-05-20 11:05:32 -05:00
resources Flight bulk actions 2026-05-23 12:05:09 -05:00
routes [8.x] refactor: migrate to the new modern laravel structure (#2207) 2026-05-07 14:58:11 -05:00
scripts Updating styling and looks of the installer/admin/system filament pages (#2211) 2026-05-20 11:05:32 -05:00
storage [8.x] Add composer run dev command (#2009) 2025-03-14 12:26:44 -05:00
tests refactor(flight): expose departure_time/arrival_time directly 2026-05-23 12:05:09 -05:00
.editorconfig Workflow fixes 2025-01-10 14:09:48 -06:00
.env.example Updating styling and looks of the installer/admin/system filament pages (#2211) 2026-05-20 11:05:32 -05:00
.gitignore feat(schema-modernization): foundations for RouteForge 2026-05-23 12:05:09 -05:00
.htaccess Remove vendor from .htaccess (#1994) 2025-02-14 14:24:19 -06:00
.oxfmtrc.json Updating styling and looks of the installer/admin/system filament pages (#2211) 2026-05-20 11:05:32 -05:00
.oxlintrc.json Updating styling and looks of the installer/admin/system filament pages (#2211) 2026-05-20 11:05:32 -05:00
artisan [8.x] refactor: migrate to the new modern laravel structure (#2207) 2026-05-07 14:58:11 -05:00
bun.lock Flight bulk actions 2026-05-23 12:05:09 -05:00
CHANGELOG.md add oxlint and oxfmt 2026-03-18 23:17:18 +01:00
compose.sail.yml feat(schema-modernization): foundations for RouteForge 2026-05-23 12:05:09 -05:00
composer.json refactor(schema-modernization): apply PR #2215 review feedback 2026-05-23 12:05:09 -05:00
composer.lock refactor: remove VaCentral package and update airport lookup implementation 2026-05-22 18:27:54 +02:00
Directory.Build.props chore: remove outdated release notes step and add GitVersioning configuration 2025-08-13 11:33:05 -05:00
docker-compose.example.yml add oxlint and oxfmt 2026-03-18 23:17:18 +01:00
Dockerfile ci: build assets during pipeline instead of committing them (#2072) 2025-08-15 09:45:14 -05:00
intellij_style.xml 7.0.0-beta3 Release (#541) 2020-02-08 13:29:34 -05:00
justfile Updating styling and looks of the installer/admin/system filament pages (#2211) 2026-05-20 11:05:32 -05:00
LICENSE Update LICENSE 2024-10-15 09:14:15 -05:00
Makefile [8.x] refactor: update console commands for improved structure and functionality (#2209) 2026-05-13 15:05:04 -05:00
package-lock.json Updating styling and looks of the installer/admin/system filament pages (#2211) 2026-05-20 11:05:32 -05:00
package.json Updating styling and looks of the installer/admin/system filament pages (#2211) 2026-05-20 11:05:32 -05:00
phpstan.neon feat(schema-modernization): foundations for RouteForge 2026-05-23 12:05:09 -05:00
phpunit.xml test: force APP_ENV=testing in \$_SERVER too (fix 9 local test failures) 2026-05-23 12:05:09 -05:00
pint.json add oxlint and oxfmt 2026-03-18 23:17:18 +01:00
Procfile Working docker-compose files for development 2019-05-10 18:40:07 -05:00
README.md add oxlint and oxfmt 2026-03-18 23:17:18 +01:00
rector.php [8.x] feature: upgrade to Laravel 13 (#2204) 2026-05-06 11:27:21 -05:00
symfony.lock refactor: remove VaCentral package and update airport lookup implementation 2026-05-22 18:27:54 +02:00
version.json add oxlint and oxfmt 2026-03-18 23:17:18 +01:00
vite.config.js Updating styling and looks of the installer/admin/system filament pages (#2211) 2026-05-20 11:05:32 -05:00

phpVMS 8

Build StyleCI License

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

  1. Upload to your server
  2. Visit the site, and follow the link to the installer

View installation details

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!

contributors images