Inspiration
Fighter jets have always been very cool to me. They are a marvel of engineering so I created a small little site to explore jets past and present.
What it does
A website that visually compares fighter jets with some nice looking graphs.
How I built it and the Challenges I ran Into
Unfortunately, there is no prebuilt API with data about fighter so that was the first step. Get data. I scraped Wikipedia and fought through the messy data on Wikipedia to get something I could work with. Even after getting the data in a structured form, it was very "dirty." I needed to extract consistent numerical from all fields that were relatively common between all of the jets. So lots of regex and cleaning later I had a nice JSON file with data I could use. I stuck that file in a MongoDB database and hooked up to it using FastAPI. Shoutout to Fastapi and it's maintainers this was the most seamless part of the project. After this, I had to make the data look pretty so I turned to Vuetify and Chart.js for the staples of the front end. After figuring out how to get the data properly structured for Chart.js I created an API endpoint that fed the data in the format that was needed, hooked that up to the front end, and success! I now have a website to visually compare jets.
Accomplishments that I'm proud of
Due to circumstances out of my control, I had to work on this by myself and I think it turned out pretty good. I am quite proud of some of those regex expressions I crafted to get the data I needed.
What I learned
I learned an incredible amount about almost every aspect of this project: web scraping, data manipulation, API creation, and front end work. I got to practice so recursion to get nested data structures out of websites and a bunch more advanced skills!
What's next for compareAJet
Deploy the site and continue to add functionality. I really enjoyed this project and hope to continue working on it. I already registered compareajet.com and I am excited about the future of it.
Built With
- axios
- chart.js
- fastapi
- javascript
- pandas
- python
- scrapy
- seaborn
- vue
- vuetify
Log in or sign up for Devpost to join the conversation.