Summary
Our web application uses ML to predict whether a particular flight will be delayed or not. We use custom REST APIs developed in Flask to interface with the model as well as APIs from weather sites to make predictions for a particular flight. In addition to the ML model, we also use Hedera for model provenance tracking. This creates a public ledger of the model's dataset, hyperparameters, training information, and creators, enabling greater transparency and ensuring that any bias or misuse of data can be seen by the public.
TODO:
How we built it
During this year's hackathon, we constructed an interactive platform, centering on an XGBoost predictive model, to offer users powerful insights on whether a flight was delayed. We harnessed Golang's efficiency and concurrency support for our REST server-side operations, ensuring rapid real-time data processing. To expose our XGBoost model, we employed Flask to design a lightweight API, acting as a bridge between our core logic and the ML model. The frontend was built using React.js, which we chose for its component-based architecture and dynamic rendering capabilities, to ensure that users received a responsive experience. Lastly, we employed blockchain techniques in order to transparently and securely store hyperparameters regarding the datasets used to train our model.
Challenges we ran into
We ran into several challenges during our project. Initially, we had to sieve through many different data sets until we found one that sufficiently met our needs of reliability and feature-quantity. Another challenge we ran into was integrating multiple languages together and had to resort to using middleware to communicate between them which was a good learning opportunity.
Accomplishments that we're proud of
We're most proud of the fact that we learned 4 new languages and frameworks in the span of 14 hours and implemented it into this web application. We're also proud of our ML model's accuracy, inclusion of blockchain to provide transparency, and collaboration efficiency.
What we learned
Building this project taught us a lot. We started with Golang to make our server and learned how Go helps manage many tasks at once. Then, using Flask in Python, we set up an API. This was a straightforward way to link our server and the data together. The most challenging part was working with machine learning. By training our system with data, we figured out how to make predictions and how to pick the right data to use. Overall, this project helped us understand web tools and how to use data to make decisions.
What's next for FlyForecast
This web application will be vastly expanded. There are numerous APIs that can source live data in order to predict flight delays even more accurately. These such parameters include flight arrival/departure density at a specific time or current events. Collecting more data is key to improving the accuracy of this project and, with time, that is a definitive possibility. Lastly, this can be extended to a mobile application and users will be able to predict the delay of their flight on-the-go.
Built With
- flask
- go
- hedera
- machine-learning
- python
- rest-api
Log in or sign up for Devpost to join the conversation.