Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/jpatokal/openflights
Website for storing flight information, rendering paths on a zoomable world map and calculating statistics, with plenty of free airline, airport and route data.
https://github.com/jpatokal/openflights
Last synced: 27 days ago
JSON representation
Website for storing flight information, rendering paths on a zoomable world map and calculating statistics, with plenty of free airline, airport and route data.
- Host: GitHub
- URL: https://github.com/jpatokal/openflights
- Owner: jpatokal
- License: agpl-3.0
- Created: 2015-06-05T11:01:21.000Z (over 9 years ago)
- Default Branch: master
- Last Pushed: 2024-09-29T08:09:05.000Z (about 1 month ago)
- Last Synced: 2024-10-02T02:02:21.032Z (about 1 month ago)
- Language: PHP
- Homepage: http://openflights.org
- Size: 62.7 MB
- Stars: 1,388
- Watchers: 69
- Forks: 390
- Open Issues: 799
-
Metadata Files:
- Readme: README.md
- License: LICENSE
- Security: SECURITY.md
Awesome Lists containing this project
README
# OpenFlights
Welcome to the code base for [OpenFlights](https://openflights.org), a tool that lets you map your flights around the world, search and filter them in all sorts of interesting ways, calculate statistics automatically, and share your flights and trips with friends and the entire world (if you wish).
## Data
Most people come here for the **free airport, airline and route data**. See the [documentation](https://openflights.org/data.php) or plunge straight into the [data itself](data/).
## User interface
See [`locale`](locale/) for supported languages and instructions for editing them or adding new ones.
## Code
I'll be upfront: this codebase is an unholy mess. The bulk of it was written in 2008, back when PHP seemed like a good idea and the only way to learn JavaScript was the hard way. Any vestiges of sanity you may encounter (eg. unit and integration tests or package management) were grafted on as an incomplete afterthought.
Basically, though, it's your classic [LNMP](https://en.wikipedia.org/wiki/LAMP_%28software_bundle%29) app. JavaScript frontend (mostly in the monolithic [`openflights.js`](openflights.js), some bits under [`js`](js/)) talking to a Nginx/PHP backend (in [`php`](php/)) that wraps around a MySQL database.
## Tests
Test coverage is woefully incomplete, but comes in three flavors:
- [`client`](test/client/): Client-side full-stack integration tests, require live DB & server
- [`server`](test/server/): Server-side (PHP) integration tests, require a live database
- [`unit`](test/unit/): Client-side JavaScript unit tests## Installation
See [INSTALL](INSTALL) for system requirements and instructions.
# Development Docker
A basic Docker setup is available to simplify setting up a development environment but requires a
couple of manual steps to get the site up and running.1. `cp php/config.sample.php php/config.php` and set `$host = "db";` so the host name matches the
the database container host name.
2. Run `docker-compose up` to create the containers.
3. Install local PHP dependencies inside the container.```
# host shell
user@host:openflights $ docker exec -it openflights-web-1 bash# container shell
root@ee261e8f9103:/# cd /var/www/openflights/ && php /usr/local/bin/composer install
```4. You should be able to access the site at `http://localhost:8007`.