A realtime flight tracking program for our Software Engineering 300 class at ERAU

Overview

Flight Tracking ERAU SE300

Crates.io build docs.rs License Dependency

Description

Software that allows for weather and plane tracking to facilitate the user in looking at plane paths. Many people who choose flights are forced to change flights or wait, when then get canceled or delayed due to weather. For some people it is fine but those who have deadlines would want to avoid this. Buy allowing flights and weather to be tracked it is possible for the user to avoid these delays and flight cancelations.

This is a class project for Embry–Riddle Aeronautical University, class SE 300 (Software Engineer Practices).

Language

Rust: https://www.rust-lang.org/

Implementations

  • Zoom:

Zooming Gif

  • Filter Planes by Airline

Zooming Gif

  • Toggle Weather on/off

Zooming Gif

  • Toggle Airports on/off:

Airport On/Off Gif

Guide

Navigation

The Flight Tracking app allows the user to move freely in the world. The user may zoom in or zoom out as much as they want as long as is in the valid ranges.

Zoom
  • Scroll Up: Zooms Out
  • Scroll Down: Zooms In
Movement

The user must Hold-Left-Click in order to be able to move around the map. While Holding, user can just move the mouse to their preferrable location.

UI

There are a total of 11 buttons on the UI. 6 of this buttons are for filtering purposes like, filtering planes according to their airlines. The other 5 buttons are display settings such as showing weather or showing airports.

Buttons

  • Airplane Button: Airplane Button

This button displays all the filtering options for planes. When clicked 6 filter-type buttons will appear next to the Airplane Button

  • Weather Button: Weather Button

This button enables/disables the weather on map. (Default = Disabled)

  • Debug Button: Debug Button

This button just displays debug info to the user on the top left of the screen. Debug includes FPS, Speed of Map Rendering, Speed of Weather Rendering, and more features.

  • Airport Button: Airport Button

This button displays the airport. Clicking it will enable/disable the airports on the screen. (Default = Enabled)

  • Bench Button: Bench Button

This button outputs into the console the speed of events the user do on the UI. Mostly for developers to use.

  • Filter Buttons:

Filter Buttons

This are the Plane Filter Buttons. When any one type of Filter Button is clicked. The Planes in the map will change according to the Filter(or Airline). Example, if user clicked American Airlines only planes form American Airlines will display on the map.

To-Do:

  • When user clicks a plane, program should display some basic data of the plane in the screen according to the plane's position.

Known-Issues:

  • The Map doesn't load after using it for while. This is because the Map API used in the programs limits the amount of tiles it can load.

  • (Not in Issue, more like a prefer) The Plane API only gets data every 5 seconds or so. Preferrably another Plane API with faster data should be found.

Issues
  • Mereg Feature/lat lng lines

    Mereg Feature/lat lng lines

    This branch contains the code for basic map zooming, panning, and dynamic tiling.

    opened by TroyNeubauer 2
  • Readme badges are hardcoded

    Readme badges are hardcoded

    wtf is this. The whole point of lables is to update if things break and to link to crates.io or our actions pipeline. These are just hardcoded to always be green. You have to change the URL so that it can load the state of our project for example this link gives you the status of develop: https://shields.io/github/workflow/status/FlightTrackingERAU/FlightTracking/CI/develop. They have a whole list of the different ones you can do here: https://shields.io/category/build

    Originally posted by @TroyNeubauer in https://github.com/FlightTrackingERAU/FlightTracking/pull/47#discussion_r751398333

    opened by TroyNeubauer 1
  • I fixed badges :)

    I fixed badges :)

    I apologize for my mistake.

    I shall cut one of my fingers to show my regret.

    opened by HernanW4 1
  • Fix linker error for GUI on github actions

    Fix linker error for GUI on github actions

    Github actions fails because it is missing some libraries needed by the GUI library.

    = note: /usr/bin/ld: cannot find -lxcb-shape /usr/bin/ld: cannot find -lxcb-xfixes collect2: error: ld returned 1 exit status This first happened in commit: b6ff76af165e8363b0212b92977203d8176351ef

    opened by TroyNeubauer 1
  • Feature/button widget

    Feature/button widget

    Created a custom Circular Button Widget. No image implemented yet

    opened by HernanW4 1
  • Render the Button Widget onto the GUI

    Render the Button Widget onto the GUI

    null

    opened by IPARRAGR 1
  • Deserialize Plane Data

    Deserialize Plane Data

    null

    opened by IPARRAGR 1
  • Rendering Planes

    Rendering Planes

    null

    opened by IPARRAGR 1
  • Rendering Lat and Long Lines

    Rendering Lat and Long Lines

    The GUI will render and display Lat and Long lines on the window

    opened by IPARRAGR 1
  • Update conrod and glam

    Update conrod and glam

    null

    opened by TroyNeubauer 0
  • Retry loading tiles

    Retry loading tiles

    Currently the cacher does not retry to load tiles that fail. I believe the best way to implement this would be to set a tile that failed to download as never tried, so that subsequent calls to get_tile is called. That way if tiles fail to download they will not be retried if they are not in view. Later we can add some kind of request_preemptive_tile to request the cacher to cache a specific that the render expects will soon be in view ahead of time. This method should return nothing, and the cacher has liberty to no respect preemptive requests as it needs.

    Also the cacher should have some way of reclaiming stale tiles that are on the GPU but out of view.

    opened by TroyNeubauer 0
Releases(v0.4.0)
Web Browser Engineering

This is a port of Web Browser Engineering series from Python to Rust done by Korean Rust User Group.

한국 러스트 사용자 그룹 26 Nov 4, 2021
This is a public snapshot of Fly's init code. It powers every Firecracker microvm we run for our users.

Fly Init This is a public snapshot of Fly's init code. It powers every Firecracker microvm we run for our users. It is Rust-based and we thought makin

fly.io 108 Nov 22, 2021
global allocator that provides hooks for tracking allocation events

tracking-allocator A GlobalAlloc-compatible allocator implementation that provides the ability to track allocation events. examples As allocators are

Toby Lawrence 5 Oct 6, 2021
Opensource diagnostic software for Daimler vehicles, inspired by Xentry and DAS, written in Rust

OPENSTAR An opensource diagnostic application for Daimler vehicles inspired by DAS and Xentry. Some of the work here is based on OpenVehicleDiag If yo

Ashcon Mohseninia 11 Oct 31, 2021
Buildomat manages the provisioning of ephemeral UNIX systems on which to run software builds

B U I L D O M A T a software build labour-saving device Buildomat manages the provisioning of ephemeral UNIX systems (e.g., instances in AWS EC2) on w

Oxide Computer Company 3 Nov 20, 2021
A powerful minecraft bedrock software written in Rust with a powerful Typescript plugin API.

Netrex A powerful minecraft bedrock software written in RustLang. Why Netrex? It's written in Rust. Unique and straight to the point. Typescript Plugi

Netrex 21 Nov 30, 2021
Rust library for program synthesis of string transformations from input-output examples 🔮

Synox implements program synthesis of string transformations from input-output examples. Perhaps the most well-known use of string program synthesis in end-user programs is the Flash Fill feature in Excel. These string transformations are learned from input-output examples.

Anish Athalye 17 Nov 24, 2021
osu-link is a program which links osu!stable beatmaps to osu!lazer's new store format, saving you disk space.

osu-link is a program which links osu!stable beatmaps to osu!lazer's new store format, saving you disk space.

LavaDesu 2 Nov 8, 2021
Solana Escrow Program

Environment Setup Install Rust from https://rustup.rs/ Install Solana from https://docs.solana.com/cli/install-solana-cli-tools#use-solanas-install-to

Nathan Ramli 0 Nov 12, 2021
A variation of the solana helloworld program example with a client written in Rust instead of Typescript

Simple Solana Smart Contract Example This repository demonstrates how to create and invoke a program on the Solana blockchain. In Solana the word prog

zeke 3 Nov 16, 2021
kindly is a simple Rust implementation of a set-user-ID-root program, similar to sudo but in a much reduced way.

kindly is a simple Rust implementation of a set-user-ID-root program, similar to sudo but in a much reduced way.

Vinícius Miguel 25 Nov 19, 2021
Simple tray application which shows battery level for HyperX Cloud Flight Wireless Headset.

HyperX Cloud Flight Battery Monitoring Introduction Simple tray application which shows battery level for HyperX Cloud Flight Wireless Headset. Screen

Stefan Kondinski 5 Nov 18, 2021
Web Browser Engineering

This is a port of Web Browser Engineering series from Python to Rust done by Korean Rust User Group.

한국 러스트 사용자 그룹 26 Nov 4, 2021
An experimental programming language for exploring first class iterators.

An experimental programming language for exploring first class iterators.

Miccah 4 Nov 10, 2021
A programming language where comments are the first-class citizen and ASCII art flowcharts are the controls!

regretti ?? A programming language where comments are the first-class citizen and ASCII art flowcharts are the controls! Made for Lang Jam (jam0001) t

Mufeed VH 7 Oct 7, 2021
A document-code sync tools for document engineering.

Writing A document-code sync tools for document engineering. Writing 是一个自动 “文档-代码” 同步工具。解析 Markdown 中的代码定义,读取目标代码,并嵌入到新的文档中。 Language parse support by

Inherd OS Team (硬核开源小组) 18 Nov 8, 2021
This is a public snapshot of Fly's init code. It powers every Firecracker microvm we run for our users.

Fly Init This is a public snapshot of Fly's init code. It powers every Firecracker microvm we run for our users. It is Rust-based and we thought makin

fly.io 108 Nov 22, 2021
Parallel finance a decentralized lending protocol built on top of the Polkadot ecosystem. Our unique approach will allow users to earn "double interests" from staking and lending their tokens simultaneously.

Parallel Finance A new Cumulus-based Substrate node, ready for hacking ?? Getting Started Follow these steps to get started with the Cumulus Template

parallel-finance 47 Nov 20, 2021
Source code for our paper "Higher-order finite elements for embedded simulation"

Higher-order Finite Elements for Embedded Simulation This repository contains the source code used to produce the results for our paper: Longva, A., L

Interactive Computer Graphics 15 Nov 14, 2021
Source code from Atlas, our 64k demo presented at Revision 2019 with Macau Exports

Atlas source code dump This is a dump of the source code for the engine, graphics tool and player for Atlas, our 64k demo released with Macau Exports

Monad 42 Oct 23, 2021
Simple and handy btrfs snapshoting tool. Supports unattended snapshots, tracking, restoring, automatic cleanup and more. Backed with SQLite.

Description Simple and handy btrfs snapshoting tool. Supports unattended snapshots, tracking, restoring, automatic cleanup and more. Backed with SQLit

Eduard Tolosa 24 Nov 22, 2021
A small utility for tracking the change in opening and closing of issues in a GitHub repo

A small utility for tracking the change in opening and closing of issues in a GitHub repo. This tool can be used to build visualizations for issue triage over time with the hope of motivating closing more issues than are opened.

Ryan Levick 12 Sep 29, 2021
global allocator that provides hooks for tracking allocation events

tracking-allocator A GlobalAlloc-compatible allocator implementation that provides the ability to track allocation events. examples As allocators are

Toby Lawrence 5 Oct 6, 2021
Sub-pixel precision light spot rendering library for astronomy and video tracking applications.

Planetarium Sub-pixel precision light spot rendering library for astronomy and video tracking applications. Example usage use planetarium::{Canvas, Sp

Sergey Kvachonok 3 Nov 23, 2021
Bartib is an easy to use time tracking tool for the command line.

Bartib is an easy to use time tracking tool for the command line. It saves a log of all tracked activities as a plaintext file and allows you to create flexible reports.

Nikolas Schmidt-Voigt 178 Nov 26, 2021
Reusable Reproducible Composable Software

Reusable Reproducible Composable Software Welcome What is this? Fractalide is a free and open source service programming platform using dataflow graph

Fractalide 711 Nov 17, 2021
A personal etude into rust software (RPG<-it's more fun to debug) development: Tales of the Great White Moose

TGWM (Tales of the Great White Moose) NB: Currently compiles. Should compile and run on both 1.28.0 and 1.31.1 if the Cargo.lock files are deleted. A

null 15 Nov 17, 2021
Save disk space by cleaning non-essential files from software projects.

Kondo ?? Cleans unneeded directories and files from your system. It will identify the disk space savings you would get from deleting temporary/unneces

Trent 512 Nov 20, 2021
Empowering everyone to build asynchronous software

Runtime Empowering everyone to build asynchronous software. API Docs | Contributing | Chat Built with ⛵ by The Rust Async Ecosystem WG ⚠️ Deprecation

Rust Async (archived) 878 Nov 17, 2021