Projects
A few highlights of my projects
🐮 MoorseCode
Technologies: JavaScript, Node.js, npm, React.js, MaterialUI
MoorseCode is a series of projects that allow users to encode and decode a version of morse code, Moo-rse Code.
npx Module: An open-source npx command line tool that allows users to encode and decode Moorse Code.
Web App: A web app that allows users to translate Moorse Code.
🧠 AddMoodTracker
TTechnologies: React.js, React Native, Expo SDK, Firestore, Firebase Auth, Victory Native (Data Visualization Library)
Add+ allows users to track daily logs of various mental health factors such as mood, sleep, caffeine intake, and energy levels. Add's simplicity of use and soothing, coffee-themed UI are tailored for those who struggle with executive dysfunction. Utilizing Firebase Authentication and Firestore, users can easily register via email, and all of their data is stored in a persistent and secure database. Various software platforms, tools, and modules such as React Native, Expo, @react-navigation, and the React Context API contribute to Add's fast loading and high performance.
Add+ also generates visualizations of personal data insights on the "Insights" tab. This feature is implemented using the Victory Native data visualization library.
🕵️ MAFIA43 Android App
A mobile app built in Android Studio that serves as a virtual moderator for the Mafia party game
Technologies: Android Studio, Kotlin
Because the classic Mafia party game prohibits a moderator from participating in the game, I worked with a remote team to develop this mobile app that automates the moderator role. I was able to support my team in the struggles of collaborating remotely by setting up a line of communication, meeting schedule, and a task breakdown plan that worked for all members.
I implemented multiple UI components from mockups created by team members, the UI and logic of a reusable and scrollable player selection component, night phase screens, and the win-state detection logic of the game. I built these features in Android Studio using Kotlin, a programming language comparable to Java with added features.
See GitHub Repo
🐢 Testudo Noserubber Game
A 2D-platformer game built in Unity that promotes UMD student health
Technologies: Unity, C#
I contributed to a four person team to build this 2D platformer game with the Unity game engine with C#. Without using any imported assets, and with a relatively short amount of time (2-3 weeks), our team was able to design engaging gameplay that references the UMD mascot, Testudo, and the student tradition of rubbing the nose of Testudo statues on campus for good luck.
Using an Agile methodology, I integrated and tested my contributions with team members code. Using Unity GameObjects, Components, and C# scripts, I implemented various animations and game mechanics including collision detection with event triggers (C# scripts), game physics, moving platforms via linear interpolation with vectors, and sound effects. I also lead the creative design of the gameplay and UI.
See GitHub Repo
🎟️ Ticket Tracking System API
Technologies: JavaScript, Node.js, Express.js, MongoDB
To improve my skills in vanilla JavaScript and RESTful APIs, I built this ticket-tracking system API (similar to applications like JIRA) in JavaScript. This RESTful API supports basic CRUD operations. I used Express.js and Node.js for the back-end to create endpoints, utilized MongoDB as the database, and defined a data schema using MongoDB's Mongoose.
✉️ Akka Resource Manager Actor
A concurrent, message-driven resource manager built with Akka framework in Java.
Technologies: Akka Framework, Java, Eclipse, JUnit
This system allows users to request abstract resources. A ResourceManager forwards requests for remote resources, and processes requests to access and manage local resources (e.g., write access to a resource, enable/disable resource).
In efforts to improve my skills in multithreaded and concurrent software, I spent a lot of extra time planning and creating unit tests for this project.
I planned and organized the architecture by note-taking, drawing diagrams, and overall forming a deep understanding of the Akka message-passing framework. This planning process made testing and debugging a very efficient and painless process; I was able to develop a methodology for planning and understanding a complex project in a short amount of time. I ended up passing 100% of the professors tests, as well.
Project Notes