Coding Projects
Jump to...
Web Development
Networks/Socket Programming
Computer Vision

Web Development

  1. Dynamic Flowchart Query Builder

    Created with Next.js & Typescript.

    A complex query builder UI in which the user can create and customize a flow chart to represent a series of logical relationships. Allows users to add, edit, and delete nested data groups. After submission and validation, the form values and flowchart are converted to YAML and committed to a GitHub repo.

  2. K.K. Music Player
    View code on GitHub

    A simple web music player for songs from the video game Animal Crossing: New Horizons. I created this project in order to improve my React skills, learn how to use context and hooks, and practice CSS. This project was bootstrapped with Create React App and uses ACNH API to fetch song metadata.

    K.K. Music Player
  3. Simple Video Chat Web App
    Project code available upon request.

    Used Express, WebRTC, Socket.io, and PeerJS to build a simple JavaScript video chat web app with side-by-side instant message chatting. Includes mute/unmute and start/stop video functions. Includes unique chat rooms so that users can invite people to a chat room by sending them a specific room link.

    Simple Video Chat Web App
  4. School project - created an API that implements CRUD operations for a ticket-tracking system. Tickets are stored in a MongoDB database. Ticket schema includes title, author, description, type, due date, assigned to, and status. Uses Express and MongoDB/Mongoose.

    Ticket Tracking API
    An example GET request with one endpoint of the API.

Networks/Socket Programming

The following projects were for my university's Computer Networks class.
  1. TCP Server & Client

    Created a TCP server and client in C. The client reads data from a file and sends fragments of that data to the server. The server computes SHA-1 hashes of that data and sends it back to the client. Supports concurrency with threads.

  2. Chat Server

    Reverse engineered an existing chat server to build a replica in Python. The chat server supports concurrent connections from multiple clients, creating and joining password-protected chat rooms, setting custom nicknames, and sending private messages to other users.

  3. DNS Client

    Coded a DNS client that uses iterative resolution to resolve domain names. Supports CNAMEs, glue records, and caching. Outputs all address records found along the way. Coded in Python.

Computer Vision

The following projects were for my university's Computer Vision class and coded in Python with Numpy; some used OpenCV.
  1. Edge Detection

    Wrote a program that implements edge detection on images through the process of manually convolving images with a gaussian kernel for noise reduction, computing image gradients and the angles of the gradients, edge thinning, and hysteresis thresholding.

  2. Feature Detection with Bag of Words Histograms

    Computed SIFT feature descriptors for three different image class training sets, then clustered the features with the k-means clustering algorithm. Created normalized histograms of the features found in each image. Then did the same with testing image sets and used sklearn's KNeighborsClassifier on the histograms to determine which class each test image belonged to. Repeated this process with linear and kernel SVMs.

  3. Image Classification with Neural Networks

    Created a multi layer perceptron (neural network) to classify the MNIST set of handwritten numerical digits using only Numpy. 90% accuracy classifying the test images after training. Also implemented a convolutional neural network through Pytorch which had an accuracy of about 98% on the test images.

  4. Panoramic Stitching with Homographies

    Matched SIFT features between images, computed homography matrices, and transformed and translated images to create a panorama using OpenCV functions.

  5. Visual Odometry

    Reconstructed the trajectory of a camera through 3D space given a subset of frames from video footage taken by a camera mounted to a driving car. The pipeline included matching keypoints between successive frames and estimating the fundamental and essential matrices.