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