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
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 Apr | Grid 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 Apr | GA4 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 Apr | Risk 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
Shipped- 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
Shipped- 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 search to all list views
- Improve waypoint editing: undo support, easier reordering, better mobile experience
- Add email notifications for new submissions and status changes