Projects
85 projects across computer vision, applied ML, full-stack products, developer tooling and research.
Page 6 of 8

Data Community Anonymous (Game Night Wall)
Anonymous message wall built for a Data Community UNILAG game night: a React Router 7 server-rendered page backed by Supabase, where visitors post without signing in and can flag inappropriate messages out of public view.
Status: Completed (2025)
Role: Community Project (Event Tool)
Key Features:
- Supabase access isolated in one typed client module; the feed query filters flagged rows and caps results at the 50 newest messages.
- Flagging writes is_flagged to Supabase and drops the message from the client list immediately.
- Deliberately unauthenticated single-route app with a Dockerfile for deployment.
Personal Portfolio Website
Personal site and blog: a React Router 7 server-rendered frontend backed by a Strapi 5 CMS, with posts, categories, tags, comments, likes, RSS and draft preview. Earlier iterations were Next.js and React/Express versions.
Status: In Progress
Role: Personal Project
Key Features:
- React Router 7 SSR frontend with routes for the blog index, post, category and tag pages.
- Strapi 5 content types for blog posts, projects, experience, categories, tags, comments and post stats.
- Reader comments and post-like counters persisted through Strapi and server-side loaders and actions.
Doc-On (Appointment Booking)
Next.js 14 appointment-booking interface for a healthcare service, with separate doctor and patient auth, a responsive multi-month calendar, doctor previews and a dashboard messages page.
Status: In Progress
Role: Personal Project
Key Features:
- App Router route groups separating auth, marketing and dashboard areas.
- Server actions posting to an external BACKEND_URL API, storing the JWT in a cookie and attaching it through a fetchWithAuth helper.
- Booking calendar rendering one, two or three months depending on viewport width.
Exam Progress Tracker
Web app planned to replace daily Google Forms during exam revision: students submit a five-star progress rating and written notes per course each day, feeding course leaderboards with optional privacy.
Status: Not Started (specified)
Role: Personal Project
Key Features:
- Daily per-course submission combining a five-star progress rating with required written feedback.
- Course leaderboards with an opt-in privacy flag that excludes private submissions.
- Persistent submission history so answers from previous days are retained.
Job Board ATS API
REST API for a job board applicant tracking system, with JWT role-based auth, job and application modules, file uploads and Swagger documentation.
Status: Completed (2025)
Role: Hackathon (ECX 14 Days of Code 2025, Backend Track)
Key Features:
- NestJS 11 modules for users, auth, jobs, applications and uploads over TypeORM and PostgreSQL.
- JWT guard with employer role checks on job creation and updates.
- class-validator DTOs and Swagger-annotated response schemas across the endpoints.
Operations Research Tools
Browser toolkit for operations research problems: step-by-step simplex, Big-M and two-phase tableaus, graphical LP plotting, and transportation initial and optimal solutions, with validated matrix inputs and JSON export.
Status: In Progress
Role: Personal Project (Academic Tooling)
Key Features:
- Simplex, Big-M and two-phase solvers returning the full tableau history for each iteration.
- Graphical LP method plotting constraints and the feasible region with Recharts.
- Transportation solvers covering north-west corner, least cost and Vogel's approximation, with optimality checked via multipliers.
CribPal (Student Accommodation Marketplace)
Verified student-accommodation marketplace built as a single Next.js App Router app with student, hostel-manager, agent, investor and admin portals.
Status: In Progress (2026)
Role: Collaboration (Full-Stack / Integration)
Key Features:
- Grafted Catalyst's agent and investor dashboards onto the CribPal codebase as role-gated surfaces, kept demo-mode-safe by rendering sample data when no Mongo cluster or payment…
- 3D/360° virtual-tour builder and viewer rendered as a self-contained three.js document inside a sandboxed iframe, so no bundler or runtime three dependency is required.
- Role-picker hub at /portal for demo previews, with the live portal chosen from the signed-in user's better-auth role.
grpc-tunnel
Python CLI tool to easily expose local gRPC servers over the internet via ngrok tunnels.
Status: Completed (Unpublished due to AVZDAX contract IP limitations)
Role: Developer Tool / Package
Task-System
A deterministic, AI-friendly task format built on plain Markdown, with a tsk command-line tool, a two-way-sync web UI, and a core library that keep them consistent.
Status: In Progress
Role: Developer Tool / Open Source (Personal)
Key Features:
- Deterministic, idempotent, and confluent formatter — input order never matters and there is no wall-clock, so output is reproducible.
- Tolerant parser that preserves unrecognized lines position-stable.
- Structured model: frontmatter, title, a nested timeline partitioned by 🏁 milestones, and an archive, with four date fields (🛫 start, 📅 due, ✅ done, ➕ created).
MELDA (AI Teaching Assistant)
An AI teaching assistant that helps teachers prepare better learning experiences, understand how students respond to them, and use that information to teach more effectively.
Status: Deployed (Web + Android)
Role: Hackathon (AFRETEC Innovation Challenge)
Key Features:
- Multi-tenant platform (signup → teacher creates a class with an invite code → students join via code), deployed across a web app and Android APKs.
- AI-assisted lesson and quiz drafting, plus section-level "adaptations" the teacher can generate (six pedagogical modes or a free-form "my own way" instruction) and edit before…
- Student → teacher signal loop: "I don't get this" flags a struggling section straight to the teacher's drill-down, where a one-tap Adapt re-casts it.
Animate Commits
CLI that replays a git commit or commit range as VS Code typing in the user's own theme, exporting an MP4 or a scrubbable browser preview. Nothing is written to the target repository or VS Code settings.
Status: In Progress (2026)
Role: Developer Tool (CLI)
Key Features:
- Reads history through git rev-list, diff --name-status -M and cat-file, and verifies every planned edit replays to the exact new file contents.
- Renderer is a pure function of time (window.__seek(tMs)) driven by a JSON event timeline with a seeded PRNG, so no CSS animation is involved.
- Frame-state fingerprinting reuses unchanged frames before piping captures to ffmpeg for an H.264 MP4.
Web-To-Desktop
Electron wrapper that turns a website into a small always-on-top desktop window toggled by a global keyboard shortcut. Each app is a JSON file naming its URL, shortcut and window options.
Status: Completed (2025)
Role: Developer Tool (Desktop Utility)
Key Features:
- Per-app JSON config in apps/, where the filename becomes the app name and CLI argument.
- globalShortcut registers a toggle that shows and hides the window.
- Frameless, always-on-top window sizes set per app, with nodeIntegration disabled.