Projects
Airport Briefing API
The purpose of this project was to gain exerience building APIs using the Spring Boot framework. Since the project was for learning/fun, I built the API in one of my key areas of interest: aviation. The API accepts one or more comma separated airport identifiers via the "identifiers" URL parameter and returns data in JSON format about the airport's facilities and current weather conditions. The API uses two third-party data sources: one for airport/facility data and one for weather data. The program makes secondary API calls to each of these third-party data sources and then aggregates the relevant data into a single JSON response, referred to as an "Airport Briefing", which a pilot would obtain when flying into or out of a particular airport. There are a number of additional features I would want to implement in order to make this API "production-ready". For example, in order to improve performance, I would want to make the third-party API calls run concurrently and I would also want to implement some form of caching to reduce the number of third-party API calls. I would want to improve on the standard exception handling functionality to make the API more descriptive and resilient to specific exception scenarios that could occur. Finally, I would want to implement some additional user configuration options, such as the ability to request a specific number of weather forecast periods and to control which data fields are returned in the response body. This was another fun project that I love to talk about, especially considering it involves aviation!
Tools and technologies used in completion of this project include:
- Java - Spring Boot
- Maven
- IntelliJ IDE
- AWS - Elastic Beanstalk
View Source Code Repository
Algorithmic Trading Application
I continue to iterate and work on this project for fun with the purpose of practicing my python programming skills, gaining exposure to algorithmic trading, and potentially earning some profits along the journey! I came up with a simple algorithm which runs each day and buys and sells if certain criteria are met. Trade signals are generally based on the RSI technical indicator and daily percent up or down of a given symbol. Trades are made through the Alpaca API-first brokerage platform and tracked in a simple MySQL database. The application and database run on the PythonAnywhere platform. I generally stick to a long-term, buy and hold investing strategy, but this was a cool way to experiment with some short-term trading strategies.
Tools and technologies used in completion of this project include:
- Python
- Python-Dotenv
- Anaconda PythonAnywhere Platform
- Alpaca.Markets API
- MySQL
- VS Code IDE
View Source Code Repository
Bookstore Web Application
This project was completed for a web application development course as part of my master's program. The purpose of the project was to gain exposure to full stack development by building the core components of an e-commerce, bookstore web application including the front end user interface, back end rest api, business logic and database structure.
Tools and technologies used in completion of the project include:
- Javascript - Vue.js
- Java - Jersey
- JDBC
- Apache Tomcat
- MySQL
- Gradle
- IntelliJ IDE
View Source Code Repository
Mobile Photo Gallery App
This project was completed for a mobile application development course (CS 5254) as part of my master's program. The purpose of the project was to gain exposure to mobile application development by building a mobile photo gallery app including front end UI components, connection to a back end REST API-based data source and client-side caching functionality to improve performance and user experience.
Tools and technologies used in completion of this project include:
- Android Platform
- Kotlin
- Gradle
- Android Studio IDE
View Source Code Repository