Skip to content

ybotspawn/PostFlight

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 

Repository files navigation

PostFlight

Post Flight — Migrate your ForeFlight logbook without losing your signatures


What Is This?

PostFlight is a free, open-source toolkit for moving your flight logbook between Electronic Flight Bag (EFB) platforms. If you've ever tried to switch from one logbook app to another, you know the pain: CSV exports that drop your instructor signatures, endorsements that vanish, and hours of re-entry that make you question why you bothered going digital in the first place.

PostFlight solves this by parsing the richest export each platform offers — including embedded signatures — and converting it into a canonical format that can be imported into any supported destination.

Why Does This Exist?

Your logbook is yours. You logged those hours, your CFI signed those entries, and none of that should be held hostage by a subscription or locked behind a proprietary format. ForeFlight's CSV export strips out signatures, endorsements, and certificates. Their PDF export keeps everything — but it's a formatted document, not structured data. PostFlight bridges that gap: it reads the PDF and extracts everything into formats you can actually work with.

Supported Platforms

Platform Exporter Importer Status
ForeFlight ✅ Working ⬜ Low priority PDF parser with signature extraction
MyFlightbook ⬜ Next Open-source target, CSV/API import
LogTen Pro ⬜ Planned ⬜ Planned Mac/iOS logbook
Safelog ⬜ Planned ⬜ Planned Web-based logbook
CrewLounge PILOTLOG ⬜ Planned ⬜ Planned Airline/GA logbook
ZuluLog ⬜ Planned ⬜ Planned Web-based logbook

Canonical Output Format

Every exporter produces the same set of output files:

  • logbook.db — SQLite database with tables: pilot_info, flight_entries, endorsements, certificates
  • logbook.json — Complete data as JSON, including computed totals
  • report.txt — Human-readable summary with per-flight detail and hour totals
  • signatures/ — Instructor signature images extracted as PNGs

ForeFlight Exporter

Getting Your PDF Out of ForeFlight

PostFlight needs the "Complete Logbook - 2 Page" PDF export. This is the only ForeFlight export format that includes your instructor signatures, endorsements, and certificates. The CSV export does not include any of this — don't use the CSV.

Option A: ForeFlight on the Web (Easiest)

  1. Log in at plan.foreflight.com
  2. Click Logbook in the left sidebar
  3. Click the Settings tab
  4. Under Export to Email, slide the switch to On
  5. In Export Options, select PDF (or "Both" if you also want the CSV)
  6. Click Export Now
  7. Check your email — the PDF will arrive at the address on your ForeFlight account

Option B: ForeFlight Mobile (iPad / iPhone)

  1. Open ForeFlight
  2. Tap MoreLogbook
  3. Tap the Reports tab
  4. Select Complete Logbook - 2 Page
  5. Set the date range to All Time
  6. Tap the Share button (top right) and email the PDF to yourself

Important: Make sure you select "Complete Logbook - 2 Page", not "Condensed Logbook - 1 Page". The condensed version omits category & class time, day/night landings, and route details.

Running the Parser

cd exporters/foreflight
pip install -r requirements.txt

# Parse your full logbook
python cli.py ~/Downloads/ForeFlight_Logbook.pdf ./output

# Quick test with just the first 3 page spreads
python cli.py ~/Downloads/ForeFlight_Logbook.pdf ./output --max-spreads 3

# Verbose mode for troubleshooting
python cli.py ~/Downloads/ForeFlight_Logbook.pdf ./output -v

What Gets Extracted

The parser reads every two-page spread of your logbook and extracts:

  • All flight entries with full column data (date, aircraft, route, times, landings, instrument, training)
  • Instructor names, CFI numbers, and expiration dates
  • Instructor signatures as PNG images (extracted via PDF SMask inversion)
  • Endorsements with instructor info and signatures
  • Certificates (Student, Private, Commercial, Medical, etc.)
  • Computed totals for all hour categories

Example Output

============================================================
Pilot:         John Smith
Date Range:    January 1, 2024 - March 15, 2026
Flights:       247
Total Hours:   412.3
  PIC:         380.1   Solo: 22.0   Night: 48.7
  XC:          198.4   ASEL: 412.3   AMEL: 0.0
  Instrument:  31.2 actual / 8.5 sim
  Landings:    519  (Day: 461  Night: 58)
Endorsements:  6
Certificates:  3
Signatures:    4

Project Structure

postflight/
├── exporters/
│   └── foreflight/
│       ├── parser.py         # Core parse logic (zero infra deps)
│       ├── cli.py            # Command-line interface
│       ├── requirements.txt
│       └── tests/
│           └── test_local.py
├── importers/                # (future)
│   └── myflightbook/
├── LICENSE
└── README.md

The core design principle: parser.py has zero infrastructure dependencies. It reads a local PDF and writes to a local directory. This makes it trivial to wrap in whatever runtime you need — CLI, web server, Lambda, container, whatever.

Contributing

PRs welcome, especially for new exporters and importers. If you fly with an EFB not listed above and want to help, open an issue.

License

MIT — see LICENSE

About

Export ForeFlight logbook entries with pilot signatures and endorsements intact, then import into other electronic logbook providers. The only open-source tool that preserves endorsements and signatures during logbook migration.

Topics

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Languages