Full-Stack ProjectLive & Active

SoakHauler

A Discord-integrated platform for Star Citizen org management — player tracking, economy intelligence, mission systems, PvP leagues, and live dashboards. Built solo from the ground up.

22+
API Endpoints
4
SQLite Databases
50+
Discord Commands
6mo+
In Production

In Action

SoakHauler RPG main menu in Discord

RPG command menu

Party management system

Party & crew management

Commodity data submission

Commodity data pipeline

What It Does

👤

Player Profiles

XP, credits, equipment, ships, trust scores, and ranking — all tracked per player with full history.

⚔️

Missions & Combat

Active mission tracking, combat encounter logs, and mission outcome analysis.

🏴‍☠️

Raids & PvP

Raid logs with attacker/defender stats, damage tracking, plunder leaderboards, and win rate analytics.

📊

Economy Intel

Crowdsourced commodity prices with trust-weighted approval queues and UEX comparison data.

🎉

Org Events

Event creation with crew signups, ship assignments, profit tracking, and automatic split calculations.

🔍

Intel System

Discovery logging for the org — locations, resources, and strategic intel shared across the team.

Architecture

Discord Bot (Python + discord.py)
    │ writes game events to
    ▼
SQLite Databases (4 normalised DBs)
    │ playerdata.db ─── profiles, ships, inventory, missions, raids
    │ soakevents.db ─── events, crew, ships, ledger, splits  
    │ soakhauler.db ─── trades, commodities
    │ intel.db ──────── discoveries, strategic intel
    │
    │ read by
    ▼
Next.js API Layer (22+ endpoints, better-sqlite3)
    │ serves
    ▼
Web Dashboard (React + Tailwind CSS)
    │
    └── Leaderboards, player pages, analytics, live data

Key Design Decisions

  • Read/write separation: Bot owns writes, website is read-only. Can't corrupt game data from the web layer.
  • SQLite over PostgreSQL: Zero infrastructure overhead. File-based backups. WAL mode for concurrent access. Perfect for org-scale data.
  • Trust-weighted data: Player-submitted commodity prices go through an approval queue with trust scores — bad data doesn't pollute the dataset.
  • Environment-driven config: All database paths via env vars. Same codebase runs on local dev and production droplet.

Tech Stack

🐍 Python🤖 discord.py🗄️ SQLite + WAL⚡ better-sqlite3▲ Next.js 14⚛️ React 18🎨 Tailwind CSS📊 Power BI🔗 REST APIs🌊 DigitalOcean🔒 Let's Encrypt SSL🔄 nginx reverse proxy

Skills Demonstrated

Backend Engineering

  • • Database design & normalisation across 4 databases
  • • RESTful API design with 22+ endpoints
  • • Connection pooling & singleton patterns
  • • Data validation & trust-weighted approval queues

Frontend Development

  • • Server-rendered React with Next.js
  • • Responsive dashboard UI with Tailwind
  • • Live data integration from API endpoints
  • • SEO optimisation & performance tuning

DevOps & Infrastructure

  • • Linux server administration (DigitalOcean)
  • • nginx reverse proxy configuration
  • • SSL certificate management (Let's Encrypt)
  • • Process management & deployment

Systems Thinking

  • • End-to-end system design (bot → DB → API → UI)
  • • Data pipeline architecture
  • • Read/write separation for data integrity
  • • Scalable patterns for small-team projects

Explore

Interested in something similar?

Whether it's a Discord bot, data dashboard, automation system, or something completely different — I build things that work. Let's talk.

Get in Touch