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.

Moorse Code NPX Module Example
Link: https://www.npmjs.com/package/moorse-code


Web App: A web app that allows users to translate Moorse Code.

Moorse Code Web App Example
Link: https://moorse-code.netlify.app/

🧠 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.

App Onboarding Screen
  
App Onboarding Screen
  
App Onboarding Screen
  
App Login Screen
  
App Home Screen 1
  
App Home Screen 2
  
App Insights Page
  

See GitHub Repo

🕵️ 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.

GitHub Icon

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.

Gameplay Screenshot

GitHub Icon

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