Project and Portal development update. (July 19th, 2024) #592
jprochazka
announced in
Announcements
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
-
ADS-B Receiver
Something that I noticed recently is the fact that running the installation scripts within a console that does not have a dark background can make on screen notifications hard to see. In order to better reintegrate file logging, I am moving screen logging as well into separate Bash functions. Doing so will allow specifying the text colors to use a trivial task. Switching colors based on a terminals current background color should be trivial in xterm but I am not sure about doing so for remote SSH clients. Either way this should open the possibility to choose a "theme" when running the scripts. Look for this change to be made available in v2.9 if not sooner in a 2.8.x release.
More feeder options are also possible in future 2.8.x releases. If you would like to see a specific feeder client added to the installation scripts let me know. I am more than willing to prioritize the addition of any requested features ahead of all other improvements currently in development. Make your voice heard by making such suggestions here.
ADS-B Portal API
Scheduled tasks dealing with aircraft and flight data gathered form dump1090 as well as database maintenance are now managed by the ADS-B Receiver API application instead of relying on crontab to determine if the tasks are running. Both jobs will no longer run as a loop, instead the flight data gathering code is will be run as an interval and the maintenance script as a once a day at midnight job. APScheduler is being used to manage these jobs with Flask-APScheduler in place to manage these jobs via the ADS-B Receiver API.
Pytest/coverage tests are now present for database and application setup as well as API endpoints. Tests are a good thing and should have been in place sooner. While adding them I was able to address some issues I had missed! Tests still need to be created for the flight data and maintenance code but those are next on the list. Not sure why I put writing tests off for so long at work this never happens but then again Python is not a first-class citizen as far as making a living is concerned thus commands a bit of a learning curve. Guess I was in a rush to get a proof of concept up and running.
I am contemplating the use of SQLAlchemy in order to address database compatibility issues, specifically when parameterizing queries across SQLite/PostgreSQL and MySQL. Past solutions grouping all SQL queries into a function responsible for inserting either
?
or%s
into queries depending on the database engine being used seems dirty. There are many other pluses to be had by moving to SQLAlchemy which makes integration a strong possibility.It should be noted that being the test process involves the use of a SQLite database generated at testing time, MySQL compatibility is currently broken in the portal branch at the time of writing this.
ADS-B Portal Frontend
Most of the functionality as far as public facing data is concerned is complete with historical flight plots being next followed by flight notifications. I was able to integrate additional map controls such as a distance gauge and a zoom slider into the historical plots map as well as utilize Chaikin's smoothing algorithm to smooth out lines between reported positions using @seonglae's to-smooth npm package.
The ADS-B Receiver Project Wiki
Edits were made to the wiki pages dedicated to the ADS-B Portal API and ADS-B Portal Frontend. It should be noted that the information found within these pages are geared mainly towards contributors and testers.
Current ADS-B Receiver Project TODO List
ADS-B Receiver v2.8.x (Pre ADS-B Portal)
ADS-B Receiver v2.9 (ADS-B Portal API Release)
ADS-B Receiver v3.0 (subject to change)
ADS-B Portal v3.1 (beyond ADS-B Receiver v3.0)
Information contained in these updates tend to age quickly. In order to cause less confusion for those keeping up with the portal development I will be removing older and inactive announcements related to the portal's development progress from the discussions section as new updates are posted. Announcements containing comments and suggestions will remain in the discussion section longer.
Beta Was this translation helpful? Give feedback.
All reactions