{"id":23550000,"url":"https://github.com/davewalker5/FlightRecorder","last_synced_at":"2025-08-29T07:30:38.870Z","repository":{"id":40303041,"uuid":"234814333","full_name":"davewalker5/FlightRecorder","owner":"davewalker5","description":"SQLite-based aircraft sightings logbook implemented in C# with separate REST API and ASP.NET MVC UI","archived":false,"fork":false,"pushed_at":"2025-08-03T10:37:04.000Z","size":6954,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-08-26T23:58:27.123Z","etag":null,"topics":["aircraft","asp-dotnet-core","asp-dotnet-mvc","aviation","csharp","dotnet-core","flight","logbook","mvc","sightings","webapi"],"latest_commit_sha":null,"homepage":"","language":"C#","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/davewalker5.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2020-01-18T23:58:10.000Z","updated_at":"2025-08-03T10:36:30.000Z","dependencies_parsed_at":"2023-10-30T11:36:13.961Z","dependency_job_id":"917bfc63-2188-4c72-865b-42419124770f","html_url":"https://github.com/davewalker5/FlightRecorder","commit_stats":{"total_commits":233,"total_committers":3,"mean_commits":77.66666666666667,"dds":0.2703862660944206,"last_synced_commit":"7f6ba31b3261fac6ceb88a5c7d3dd127b6b0d2b6"},"previous_names":["davewalker5/flightrecorderdb"],"tags_count":30,"template":false,"template_full_name":null,"purl":"pkg:github/davewalker5/FlightRecorder","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/davewalker5%2FFlightRecorder","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/davewalker5%2FFlightRecorder/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/davewalker5%2FFlightRecorder/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/davewalker5%2FFlightRecorder/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/davewalker5","download_url":"https://codeload.github.com/davewalker5/FlightRecorder/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/davewalker5%2FFlightRecorder/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":272647821,"owners_count":24969779,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-08-29T02:00:10.610Z","response_time":87,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["aircraft","asp-dotnet-core","asp-dotnet-mvc","aviation","csharp","dotnet-core","flight","logbook","mvc","sightings","webapi"],"created_at":"2024-12-26T10:11:57.478Z","updated_at":"2025-08-29T07:30:38.864Z","avatar_url":"https://github.com/davewalker5.png","language":"C#","funding_links":[],"categories":[],"sub_categories":[],"readme":"# FlightRecorder\r\n\r\n[![Build Status](https://github.com/davewalker5/FlightRecorder/workflows/.NET%20Core%20CI%20Build/badge.svg)](https://github.com/davewalker5/FlightRecorder/actions)\r\n[![GitHub issues](https://img.shields.io/github/issues/davewalker5/FlightRecorder)](https://github.com/davewalker5/FlightRecorder/issues)\r\n[![Coverage Status](https://coveralls.io/repos/github/davewalker5/FlightRecorder/badge.svg?branch=master)](https://coveralls.io/github/davewalker5/FlightRecorder?branch=master)\r\n[![Releases](https://img.shields.io/github/v/release/davewalker5/FlightRecorder.svg?include_prereleases)](https://github.com/davewalker5/FlightRecorder/releases)\r\n[![License: MIT](https://img.shields.io/badge/License-MIT-blue.svg)](https://github.com/davewalker5/FlightRecorder/blob/master/LICENSE)\r\n[![Language](https://img.shields.io/badge/language-c%23-blue.svg)](https://github.com/davewalker5/FlightRecorder/)\r\n[![Language](https://img.shields.io/badge/database-SQLite-blue.svg)](https://github.com/davewalker5/FlightRecorder/)\r\n[![GitHub code size in bytes](https://img.shields.io/github/languages/code-size/davewalker5/FlightRecorder)](https://github.com/davewalker5/FlightRecorder/)\r\n\r\n## About\r\n\r\nFlightRecorder implements a SQL-based aircraft sightings logbook. An ASP.NET WebAPI provides access to the business logic and data access layer while an ASP.NET MVC UI provides the user interface.\r\n\r\n### Sightings\r\n\r\nEach sighting consists of the following data:\r\n\r\n- Flight details\r\n  - Flight number\r\n  - Embarkation airport IATA code\r\n  - Destination IATA code\r\n  - Airline\r\n- Aircraft details\r\n  - Registration details\r\n  - Manufacturer\r\n  - Model\r\n- Sighting details\r\n  - Date\r\n  - Altitude when sighted\r\n  - Location\r\n\r\nA register of airport codes by country is used to validate airport IATA codes.\r\n\r\n### Search\r\n\r\nSightings may be searched by:\r\n\r\n- Route, specified as airport IATA codes\r\n- Flight number\r\n- Airline name\r\n- Aircraft registration number\r\n- Date\r\n\r\n### Reporting\r\n\r\nThe following reports can be generated and exported to CSV format files:\r\n\r\n- Airline statistics\r\n- Flights by month\r\n- Location statistics\r\n- Manufacturer statistics\r\n- Aircraft model statistics\r\n\r\nMore flexible out-of-app reporting is also available using Jupyter Notebooks and the reports in the \"reports\" folder.\r\n\r\n### Data Export\r\n\r\nThe following data can be exported in CSV format:\r\n\r\n- Sightings\r\n- Airport code and country list\r\n\r\n## Getting Started\r\n\r\nPlease see the [Wiki](https://github.com/davewalker5/FlightRecorder/wiki) for configuration details and the user guide.\r\n\r\n# Sightings Hub\r\n\r\nMy own sightings, recorded using the application, are published on the following site:\r\n\r\n[Sightings Hub](https://davewalker5.github.io)\r\n\r\n## Authors\r\n\r\n- **Dave Walker** - _Initial work_ - [LinkedIn](https://www.linkedin.com/in/davewalker5/)\r\n\r\n## Credits\r\n\r\nImplementation of authentication using JWT in the REST API is based on the following tutorial:\r\n\r\n- https://github.com/cornflourblue/aspnet-core-3-jwt-authentication-api\r\n- https://jasonwatmore.com/post/2019/10/11/aspnet-core-3-jwt-authentication-tutorial-with-example-api#users-controller-cs\r\n\r\nThe Flight Recorder MVC project uses the Gijgo JavaScript controls library:\r\n\r\n- https://gijgo.com\r\n\r\n## Feedback\r\n\r\nTo file issues or suggestions, please use the [Issues](https://github.com/davewalker5/FlightRecorder/issues) page for this project on GitHub.\r\n\r\n## License\r\n\r\nThis project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details\r\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdavewalker5%2FFlightRecorder","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdavewalker5%2FFlightRecorder","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdavewalker5%2FFlightRecorder/lists"}