Checkpoint

Checkpoint-Core was my Senior capstone project, developed in a team of 8 and led by me. Checkpoint is a database server designed to store a catalog of equipment which can be accessed via a custom API for the purpose of reserving and borrowing equipment. The database can be queried either directly or via a web app, Checkpoint-Web, which was Checkpoint-Core’s sister project. Our teams worked closely to ensure seamless communication.

Features:

  • Standard CRUD functionality
    • Update entry to report damage/wear
    • Hold updates in buffer pending admin approval
  • Secure, RSA-encrypted message exchange in JSON format.
  • OAuth secure account access
  • Account flags for tiered permissions
  • Robust logging of all requests, including user account (where applicable) and timestamp
  • Email reminders for due dates, etc.
  • Waitlist for items already reserved

Technologies utilized:

  • FastAPI
  • PostgreSQL
  • Python

Skills gained:

  • Leadership
  • Agile Development

Data for Honduras

A custom SQL database developed for a client, for the purpose of storing nearly a decade’s worth of digitized archaeological data. The artifacts documented in this database were collected from various pre-colonial sites in Honduras, and digitization protects them from the flooding that plagues the original artifacts’ current storage location. Digitization also makes the data more easily accessible to other scientists and researchers.

Features

  • Lightweight, shareable, and responsive to query
  • Standardized language

Technologies:

  • PostgreSQL
  • Windows

Skills:

  • Requirements gathering
  • Agile development
  • Client communication

Attic-Bot

Attic-bot is a discord bot currently in development, designed for moderation and utility tasks.

Features:

  • Moderation Commands
    • Request user/server info, warn, ban
  • Utility Commands
    • Reminders, Timers, formatting

Technologies:

  • Node.js
  • Windows
  • WSL

Skills:

  • Troubleshooting
  • Refactoring
  • Backwards Compatibility
    • A major Discord API update took place mid-development which required major restructuring of the bot and commands
  • Testing, including edge cases
    • Any customer-facing product must be tested with malicious users in mind

Rhodes Ramble

A copy-cat of YikYak, this product was a fully multi-threaded small-scale social media platform.

Features:

  • Anonymous user accounts
  • Post, comments, and likes storage
  • Multithreading for simultaneous access
  • Continuous logging

Technologies:

  • C
  • Thread management (pthread)
  • Linux

Skills:

  • Multithreading
  • App Architecture
  • API interaction
  • Code to Specification

Cloud Server

This product was a study in cloud-based file storage and the security technologies that protect it. It used RSA encryption and TLS handshake protocols to provide highly scalable enterprise level security on a server small enough to study in real time.

Features:

  • Fully RSA encrypted
  • File storage
  • Multiple account support, with no data leakage

Technologies

  • Python
  • PyCryptodome

Skills:

  • Client/Server Communication
  • Applied Cryptography
  • Team Leadership
  • Code to Specification

N-Body Problem

This implementation of the N-Body Problem placed 2nd in class for speed, efficiency, and correctness. It ran on a cluster of 2112 compute cores.

Technologies:

  • Slurm
  • C
  • Large parallel cluster
  • Linux

Skills:

  • High performance computing
  • Parallelism

Hall Media Server

Hall media server is a personal media server which hosts over 3 TB of data. This data can be accessed at full original quality from thousands of miles distant.

Technologies:

  • Tailscale
  • Plex
  • Ngrok

Skills:

  • Networking
  • TCP/IP
  • Port Forwarding
  • Troubleshooting
  • Problem-Solving

Desktop Weather Portal

This project is a small bare-metal programming project based on the ESP32 chip. It uses an e-ink display to render weather information fetched via HTTP from openmeteo.com.

Technologies:

  • Arduino C++
  • Bare metal
  • e-ink
  • Serial Communication
  • HTTP/JSON

Skills:

  • Display rendering
  • Peripheral communication
  • UI Design