Here are some recent software projects that showcase a range of my skills and interests. A general description of their intended purpose, technologies and languages used, and a link to the Github repository (if available) are included.
If you would like to see writing samples or other projects in my portfolio, feel free to contact me.
Read My Resume Contact Me
A website evaluating COVID-19 risk, built using vue.js, MongoDB, Node.js, JavaScript, Heroku, HTML, CSS, and based on research analysis completed in R.
Website created for my book club as a Meetup.com replacement. Built using JavaScript, HTML, CSS, Python, and Google Calendar API.
Using RStudio and Centers for Disease Control and Prevention data, I analyzed a large data set to answer research questions about asthma in the U.S.
Built with two teammates, this website assesses the user's probability of catching and developing a severe case of COVID-19, based on research data provided by NYC Department of Public Health and C3.ai analyzed with R and RStudio. The user enters in their daily routine and the website's JavaScript-based algorithm determines their risk level with charts. Offers account and login integration so user data can be saved in the MongoDB database. Site deployed with Heroku.
Website created for my book club as a Meetup.com replacement. Built using JavaScript, HTML, CSS, and Google Calendar API (data ported from club calendar). Meetup JSON event data cleaned using Python Pandas.
Hosted at rereaders.club. Use intended for club members as well as for potential members. Site includes details about the books we've read as a group, group history, upcoming event information, and a joining request/contact form.
Upcoming features to be implemented: a searchable list of previously read books, a members-only section with login capability.
I formulated several research questions with the theme of asthma in the U.S. population, using RStudio and Centers for Disease Control and Prevention data. Using nearly half a million interviews comprising a large data set (491k entries and 330 columns), I used R to filter, sort, visualize, and summarize my conclusions.
A hiking database tracking hiker, hike, park, trail, and camping entries with CRUD functions, built using MariaDB, node.JS, SQL, and JavaScript.
A text-based C++ game in which the player must find their missing socks, which are hidden in randomly-assigned locations.
Put items into bins and minimize the number of bins. This Python program uses three greedy approximation algorithms to solve the bin packing problem.
This database tracks hikers, hikes, parks, trails, and camping entries. Users can enter in data such as hike weather, length, ascent, and temperature, all tracked with unique IDs. Relationships between entities have been defined (e.g. there is a many-to-many relationship between hikers and hikes).
This game was designed with pointer-linked room spaces using object-oriented programming concepts. The player can navigate from room to room, searching objects and spaces for their missing socks, by typing options into the terminal. Room and sock locations are randomly generated each game, which has a 100 step limit.
This game was inspired by a recurring nightmare of mine (not having socks and frantically searching for them with no luck… in real life, I don’t really like wearing socks and avoid wearing them whenever possible).
You can play the game in your browser. Be sure to make the black terminal window on the right as wide as possible so the house map can be properly viewed, then click RUN at the top.
In the bin packing problem, objects with different volumes are packed into a finite number of bins in an order that minimizes the number of bins used. This program uses three greedy approximation algorithms to solve the bin packing problem.
1. First-Fit: Each object is put into the first bin that fits. If there is no appropriate bin, a new bin is opened.
2. First-Fit-Decreasing: The object is sorted in decreasing order by volume, then use the First-Fit approach.
3. Best Fit: Place objects in the order received. Place the next object into the bin that leaves the least amount of volume left over after object is placed. Start a new bin if the object doesn't fit into any of those open.
This C program encrypts and decrypts messages using a one-time pad-like implementation. Plaintext will be encrypted and decrypted into ciphertext using a randomly generated key.
A text-based adventure game written in C. The player must go from the starting room to the ending room. The rooms and their connections are randomly generated each game.
Website about a rural Chinese region, created using HTML, CSS, JavaScript, and node.JS.
This C program encrypts and decrypts messages using a one-time pad-like implementation. The user can type in plaintext that will be sent from client to the server, which encrypts the plaintext into ciphertext, using a randomly generated key. The user could also decrypt ciphertext back into plaintext.
The program functions using network sockets to send and receive bytes. Using child processes, it can handle five encryptions concurrently.
In this C game, the rooms are randomly generated and placed when each game starts. Both the starting room and the ending room are different in each game.
The player starts in the starting room and wins when they reach the ending room. They can navigate there by typing in room names; the program uses C-strings. The game can also return the current time, a feature that uses multithreading and mutexes.
A website about the rural Chinese region my family is from. I had visited Guangdong province in March 2018, just before I made this website dedicated to it. I took all the photos featured on the website. The website has some basic information about the area's history, the vast diaspora originating there, the local dialect, and links to other resources. It also retrieves weather information using AJAX.