FlyingPlan

PHP CodeIgniter 4 MySQL Bootstrap 5 JavaScript HTML/CSS

Project Overview

A drone flight management system built to help operators plan flights, manage equipment, track maintenance schedules, and maintain regulatory compliance records. Designed for practical, everyday use by drone pilots and small operators.

The Problem

Drone operators need to manage complex operational requirements — flight logs, equipment status, maintenance schedules, pilot certifications, and regulatory compliance. Many rely on spreadsheets or disconnected tools.

The Solution

A web-based system that centralises all operational data into one dashboard with role-based access, equipment tracking, flight planning tools, and compliance documentation.

Key Features

  • Flight planning and logging
  • Equipment inventory and maintenance tracking
  • Pilot certification management
  • Regulatory compliance records
  • Role-based user access
  • Dashboard with operational overview
  • Export and reporting capabilities

My Role

Full design and development — from database schema to frontend interface. Migrated from SQLite to MySQL. Rewrote in PHP/CodeIgniter 4 from an earlier Python/Flask prototype.

Technology Used

PHP CodeIgniter 4 MySQL Bootstrap 5 JavaScript HTML/CSS

Challenges and Learning

Migrating the database from SQLite to MySQL required careful schema adaptation. Rewriting the entire application from Python/Flask to PHP/CodeIgniter was a major undertaking that deepened understanding of both frameworks. Thanks Gareth! ;)

Outcome / Value

A practical, real-world management tool that solves genuine operational needs. The rewrite process was one of the most significant learning experiences in the portfolio.

Screenshots

Live Demo

Try FlyingPlan yourself — explore the public flight brief form or log in as admin or pilot.

This is a live development demo. If something isn't working, please wait a moment — improvements may be in progress.

One-click demo login. Password changes disabled. Demo data resets periodically.

Latest Updates

3 AprGrid Mission fix: photo capture waypoints now placed along entire flight passes (was: only at edges). GSD calculator connected to grid planner with overlap % control
3D Preview fix: interactive rotation, zoom, and pan now working (Three.js OrbitControls CDN path corrected)
Terrain safety: elevation chart now highlights below-terrain collision risk, auto-refreshes after terrain follow
Grid performance: waypoint cap at 500, lightweight markers for large sets, compact waypoint list
Map legend added showing what each colour and symbol means
Fix polygon draw toolbar hidden behind waypoint toolbox (z-index overlap)
Fix settings page low contrast on planning panel cards in dark mode
One-click demo login — click account card to log in instantly
Clean demo data reset + fix NULL settings defaults on fresh install
Fix settings page crash (Array to string conversion in drone profiles)
Phase 6: Solo operator mode — auto-assignment, merged workflow panel
Phase 5: Operator quick-create — new brief from phone/email in 60 seconds
Phase 4: View gating — hidden features disappear completely
Phase 3: Manual configuration UI — modules, form fields, planning panels
Phase 2: Template selection UI — 5 operator profile presets
Phase 1: Templates foundation — config infrastructure, module gating
Phase 0: Bug fixes — language, pagination, cancelled status, confirmation page
2 AprGA4 analytics with demo event tracking across portfolio + FlyingPlan
Full technical SEO: JSON-LD, Open Graph, Twitter Cards, canonical URLs
Cookie consent banner with 6-month expiry, GDPR-compliant modal
Privacy Policy, Terms & Conditions, Cookie Policy pages
Fix all social media links + GitHub project links across 15 pages
1 AprRisk assessment: flexible submit, weather fetch (3 sources), battery dropdown
Fix 103 hardcoded redirects + 19 fetch paths for subfolder deployment
Full demo data: 4 accounts, 8 flight plans, 7 drones, risk assessments
FlyingPlan deployed to attv.uk — PHP/CI4 on one.com shared hosting
Portfolio site scaffolded — HTML/CSS/JS/Bootstrap, 18 pages, deployed

What's Next — Proposed Improvements

2 April 2026 — With thanks to TallDrone and macspite (Misty Moments) from the Grey Arrows community for testing and their valuable feedback.

Based on early tester feedback, the following changes are planned. Vote for the features you'd like to see first:

Simpler customer enquiry form

  • Reduce the public form to the essentials: name, contact details, job type, location, dates, and a short description
  • Move all technical flight details (altitude, camera angle, photo mode) to the operator side — customers should not need to make pilot-level decisions at enquiry stage
  • Improve the language throughout — replace aviation jargon with plain English so the form feels accessible to anyone booking a drone service

Operator-created briefs

  • Add a quick-create option so operators can log a job from a phone call or email without using the public form
  • Manually created jobs follow the same workflow as customer-submitted ones

Better support for solo operators

  • Introduce a solo mode that removes the need to switch between admin and pilot logins
  • Auto-assign new jobs to the operator — no manual assignment step when you are the only pilot
  • Combine the admin and pilot views into a single working dashboard

Saving incomplete enquiries

  • Save partial form submissions so operators can follow up with customers who started but did not finish
  • Allow customers to resume where they left off via a recovery link

Modular features

  • Break advanced tools into optional modules: planning, analytics, compliance, and team management
  • Let operators start with a lightweight setup and enable more features as their business grows

General improvements

  • Add pagination and search to all list views
  • Improve waypoint editing: undo support, easier reordering, better mobile experience
  • Add email notifications for new submissions and status changes
  • Add a cancelled status for orders so withdrawn jobs are clearly tracked

Read the beta tester discussion on Grey Arrows Forum