Character Sheet |
Mobile Application |
June 2014 - May 2016
|
This app was something I built for fun. I could not find any satisfactory apps at the time for 3.5 edition,
so I built my own one summer. This was my first experience in android app development, so it was a great learning experience.
After I finished it I just put it up on the app store in case anyone else was interested.
The app currently has over 50,000 installs! If you're interested
you can check it out here
The app has gone through a lot of updates while on the google play store. My original version was actually corrupted when I got
a new laptop sometime in 2015. I am not incredibly happy with the version that I have on the store now either. I have learned a lot
since it was first made, and the update I made in 2015 was pretty minor (just fixing a few fields so it worked better for some people). I
have since taken this concept and expanded on it in a new app, seen below. |
Salty Seagull |
Video Game |
September 2017 - December 2017
|
This was a multiplayer video game I developed on a team with one other developer and two 3D artists. In this game,
players assumed the role of one of four playble seagulls (each with unique textures). Each seagull had a nest that they
were trying to bring different beach treasure to. Treasure can range from diamonds to old hot dogs. Each of which was worth varying points.
After a set amount of time, the game ends and the player with the most points wins.
We showed off this game at Undergrad Research and Creative Achivement Day (URCAD) at UMBC. This event is
meant as a means for undergrads to show off whatever they are researching or otherwise developing to the rest of the campus.
We saw many players testing our game throughout the day, and many said they really enjoyed the competative nature of our game. |
Free Food & Stuff |
Mobile Application |
December 2017
|
Made an app at a hackathon (24 hour coding 'competition') with my roommate. The app allowed users to specify an event they were hosting,
including a the time, place, and some details, that would include free food. The idea behind this was that there were a ton of events happening
on campus all the time, most of which try to bribe people to come with free food. We figured that, in the beginning, this app would be useful for
event organizers to get more students to come, but also useful for hungry college students trying to get a free meal. Our app utlized google maps, and
would show a user all of the events within a user defined radius of their current location. We were able to build a fully functional prototype build in the
alotted 24 hour timeframe.
I worked to develop most of the "app" portion of this project, both front-end and back-end. This included all of the layouts and their Java powered
counterparts. My partner had taught himself how to set up a database with Amazon AWS, host that database on one of our machines as a server, and set up a way to
connect to that database through the app. We also played around with adding advertisements, mostly as a practice for any app development we may do in the future. |
Pokemon AI |
Web Scraper/AI |
September 2018 - October 2018
|
I had originally intended this as an AI project, but it turned into more of a practice in web crawling. A popular
website for battling pokemon competatively is Pokemon Showdown. Here
players can build teams of pokemon with any legal moveset and stat line up. Because of this, building your team is quick
and the battles can be entirely skill focused. The bot that I had created for this project was able to log into the site
using a dummy account I set up. It would then upload a predesigned team (using the sites text entry feature). Once a
team had been loaded and was verified as playable, the bot would immediately find someone to battle. From here, it
would be able to recognize the pokemon it currently had in play, the opponents name, the pokemon team the opponent had,
and the pokemon the opponent currently had in play. The option of the four moves, swapping a pokemon, and mega evolving
(if available as an option) was random, though it would incentivize attacking over swapping a pokemon out.
When the battle began, the bot would look each of the opponents pokemon up on
serebii which is a the go to site for anything related to pokemon knowlege. From here, the bot would find out
that pokemon's name, base stats, and typing. I had planned to utilize these for a Q_learning algorithm, before I realized that
I may wind up with too many variables for that type of learnign algorithm. I may come back to this project one day. |
Raspberry Pi Game Console |
Hardware |
March 2019 - May 2019
|
Unlike my other projects, this one involves a lot of hardware work. I bought a raspberry pi and installed the RetroPie OS to it. This operating system houses several video game emulators.
I have gained experience with soddering buttons to a circuit board and wires connecting those buttons to GPIO pins on the raspberry pi. The pi is able to parse input from the buttons and recognize them as one of four directional inputs,
one of four button inputs, one of two shoulder inputs, start, select, or a special hot key button. I have overlaoded the hot key button to interact with other buttons to perform special functions. For instance, hotkey+up increases the
volume, and hotkey+down decreases it. I am still in the progress of designing a case for this device, but it is currently functional with a backlit 3.5" screen! |
Discord Bot |
Web Service |
March 2020 - Current
|
I host a discord server for all of my friends. It is mostly used for games, but also just general communication. For this server, I am actively working on a bot that adds several quality of life improvements to the server. So far it can roll a dice, start a vote for a given topic, randomly assemble possible civilization options for the gaive Sid Miers Civilization 5 and 6, assign server roles to users based on an emote they add to a message, randomly grab posts from reddit given a subreddit option, and grab a message from my email that is tied to daily programming challenges to post said email. This bot is written in NodeJS, and utilizes web crawling, email parsing, and file writing. I am constantly working on it, as more ideas and requests come for functionalities. |
Focus App |
Mobile Application |
May 2020 - May 2020
|
Created this app to help me focus on personal projects. It spams me with a notification ever N seconds that I am not on the app itself. The app just has a simple stopwatch that counts up. This incentivizes me to avoid facebook, reddit, twitter, etc. while trying to work. This app can be found here |
Character Sheet App (5e) |
Mobile Application |
May 2021 - August 2021
|
This is an updated charactersheet which is compatable with Dungeons and Dragons fifth edition. This sheet is modeled after my original 3.5 design, but has been written with OOP standards in mind. Each character is a serializable object, and is saved to the device in a much cleaner way. I addressed several issues that were pointed out in play store comments on my old app. I have allowed users to share their characters either through email, or any SEND_TO Intent enabled app. I plan to continue iterating on this app by making it compatable with 3.5 (to phase out my old application), allowing an automated flow for users who do not want the customizability of the current app, and generally updating the look and feel down the line.
This app can be found here |
Pokerole Character Sheet |
Mobile Application |
September 2022 - September 2022
|
Yet another character sheet for a role playing game I started playing. When I started, I saw there were no applications for it on android, so I went ahead and made my own. This app utilizes Jetpack Compose and highly condenses information which would typically take up over 20 sheets of paper!
This app can be found here |
Pokemon WatchFace and Tile |
WearOS Application |
May 2022 - November 2022
|
With the release of Google's new Pixel watch, I wanted to get experience with WearOS. To this end, I developed a watchface in May of 2022 that would display a random pokemon egg each day. As the user walks, this egg would gain experience and eventually hatch. Every 100 steps is counted as a level, with most pokemon needing to reach level 50 in order to reach their final forms. This helped to incentives me to be more active by gamifying the activity. After a while, though, I found that this watchface was fairly battery intensive. Because of this, I moved the functionality over to a Tile instead. Tiles proved to be a very different development skill, so I am glad I made this decision and was able to experience building the UI from all fo the builder functions they provide rather than a layout or compose function. (Note that I did not design or create most of the art assets that are used. credits for those can be found on my gitHub, linked below)
The pokemon watch face can be found here |
Digimon TCG App |
Mobile Application |
April 2023 - Current
|
I started playing the Digimon trading card game last year. As I played, I wound up with quite a lot of cards. After a short time, I really wanted a way to categorize the cards I owned, as well as deck build in an easy way. There wasn't an app on the play store to support this need at the time, so I built my own. This app is connected to a database that updates with all of the latest cards periodically. Users can scan any cards into the app using their phone's camera, to keep a growing catalog of all of the cards in their collection. Users can also use the app to build virtual decks and track which cards they may still need to make that deck in real life.
This app was built utilizing MVI, Jetpack Compose, and Kotlin. I am continuously updating as I find more features that fit my needs as the primary user. I will have this live on the play store soon!
|