My Projects
A showcase of my technical projects, demonstrating my expertise in full-stack development, system administration, and network infrastructure.
FROGO - Peer-to-Peer Video Chat Platform
A full-stack video chat platform with real-time matchmaking and WebRTC audio/video sessions, built on Next.js, React, Express, MongoDB and Socket.IO, with a moderation pipeline backed by AWS S3.
Technologies
Next.jsNode.jsExpress.jsMongoDBWebRTCSocket.IOAWS S3JWT
Key Features
- Fixed double-booked matches by making the MongoDB pairing write atomic, then signalling peers over Socket.IO
- Replaced static TURN credentials baked into the client with short-lived HMAC-SHA1 tokens from self-hosted coturn
- Secured the REST API with rotating JWTs, bcrypt, and CSRF protection
- Built moderation tooling storing report metadata in MongoDB with image evidence on AWS S3
Fake News Classifier
A multi-layer perceptron trained on 44,898 news articles with scikit-learn TF-IDF features, reaching 99.6% test accuracy. Served live on this site by a Python process running alongside the Node server.
Technologies
Pythonscikit-learnNLTKBeautifulSoupjoblibNext.js
Key Features
- Live demo: paste any article URL and it is scraped, normalized, and scored in place
- Cleaned the dataset in pandas with null checks, type coercion, and field merging
- Custom NLTK analyzer handling tokenizing, stopword removal, and stemming ahead of TF-IDF
- Caught target leakage in the subject column and dropped that field before serving predictions
- Serves the 430 MB model from a Python sidecar behind a rate-limited REST API
Computer Vision Phone-Detection System
A real-time AI pipeline in Python running YOLOv8 inference on each webcam frame with OpenCV and Ultralytics, raising an alarm the moment a phone appears in frame.
Technologies
PythonYOLOv8OpenCVUltralytics
Key Features
- Runs YOLOv8 inference on each webcam frame with OpenCV and Ultralytics
- Draws labelled bounding boxes above a confidence threshold, colour-coded by object class
- Suppresses false positives by requiring a 0.5 confidence score before firing an alert
- Triggers looping pygame audio and on-screen alerts, clearing them once the phone leaves frame
Home Lab
A self-hosted homelab running Ubuntu Server to host frogo.app and practice Linux administration, networking, VPN configuration, and Cisco CLI-based VLAN management.
Technologies
Ubuntu ServerLinuxCisco CLIVPNCloudflareNetwork Security
Key Features
- Ubuntu Server hosting full-stack applications in production
- Cisco managed switch configured with VLANs via Cisco CLI
- Secure remote access and VPN services configured
- Infrastructure workflows relevant to hosting full-stack applications
Personal Website
A modern, responsive personal portfolio site built with Next.js to showcase projects, technical experience, and live application demos.
Technologies
Next.jsCSS ModulesJavaScriptAWS
Key Features
- Reusable React components and responsive layouts
- Optimized page structure, routing, and metadata for SEO
- Live project demos served by sidecar processes alongside the Node server
- Security headers, rate limiting, and CORS protection