C#
.NET
TypeScript
JavaScript
Azure
Next.js
Node.js
React

MSc Dissertation Project

Subcept

An adaptive AI tutoring engine built for my MSc Computer Science dissertation at the University of Birmingham. Rather than handing learners an answer, Subcept turns their question into a structured lesson, teaches it through conversation, and diagnoses why an answer was wrong.

  • Generates a complete lesson plan for each question using an LLM, with sub-skills, worked examples, marking rubrics and common misconceptions, validated before it is served
  • Tracks each learner's mastery of every sub-skill with Bayesian Knowledge Tracing, updated from rubric-graded answers
  • Classifies wrong answers by failure mode and responds with matched remediation, from revisiting a prerequisite to a worked example
  • Built-in guardrails, screening questions before generation and preventing the tutor from simply giving the answer away
  • Controller-Service-Repository architecture tested with xUnit, containerised with Docker and deployed to a Linux VPS
C#ASP.NET CoreEntity Framework CoreSQLiteReactTypeScriptTailwindGemini APIxUnitDocker
Tutoring session
Subcept tutoring session with mastery tracking
Hints and clarification
Subcept answering a learner's clarification question

C# & .NET Project

U2U Marketplace

A peer-to-peer marketplace API built using C#, ASP.NET Core Web API, Entity Framework Core, LINQ, and Azure SQL Server. The project aims to replicate a service like eBay, where users can both buy and sell products in a secure and efficient way.

  • Adhered to SOLID principles, utilising the Controller-Service-Repository pattern, dependency injection and interfaces to ensure separation of concerns is maintained throughout the application
  • Achieved 100% test coverage with an extensive xUnit testing suite comprising over 130 tests
  • Containerised the application using Docker, and deployed to an Azure App Service
  • Automated CI/CD pipeline using GitHub Actions for testing, building, and deployment phases
C#ASP.NET CoreEntity Framework CoreLINQAzure SQLxUnitDockerAzure App ServiceGitHub Actions
Entity relationship diagram
U2U Marketplace entity relationship diagram
Solution structure
U2U Marketplace solution structure

TypeScript Project

ClubConnect

A full-stack TypeScript events management platform designed to mediate the buying and selling of tickets to sporting events. Built using Node.js, Express, and a PostgreSQL database for the backend, combined with a responsive React frontend developed with Next.js, Tailwind and Framer Motion.

  • Test-Driven Development (TDD) led approach, using Jest and Supertest, with over 90 tests in total
  • Styled with Tailwind to match a curated Figma design, enhanced with Framer Motion
  • Secured password encryption with BCrypt, and applied strict validation of schemas using Joi
  • Stripe Payment API integrated to securely facilitate the event ordering process
  • Google Calendar API implemented to enable users to seamlessly add events to their calendars
TypeScriptNode.jsExpressPostgreSQLReactNext.jsTailwindFramer MotionJestStripe
API response
ClubConnect API endpoint
Ticket ordering
ClubConnect ticket ordering page

JavaScript Project

NC News

A full stack news aggregation platform built with JavaScript, Node.js, Express, React, Vite, Axios and a PostgreSQL database. Designed to mimic a similar service such as Reddit, where users can post content, leave comments on existing posts, and upvote or downvote other users posts.

  • Test Driven Development (TDD) led approach, using Jest and Supertest to guarantee a robust API
  • Styled with Bootstrap, producing a responsive design compatible for all device types
  • Followed RESTful API design principles with resource-based routing and stateless interactions
  • Implemented API using the MVC design pattern, producing a clean and maintainable codebase
JavaScriptNode.jsExpressPostgreSQLReactViteAxiosBootstrapJest
Backend
NC News API
Frontend
NC News frontend

JavaScript Project

Treasure Hunt

A full stack geocaching, location-based application built with Python, Django REST, JavaScript, PostgreSQL, Next.js, and React. The premise of the game is for users to find treasures in their area using GPS, akin to Pokemon Go or similar, to unlock treasures on a map by being within proximity of these treasures.

  • Comprehensively unit tested all API endpoints using Django REST Framework testing tools
  • Styled with Tailwind and Framer Motion, creating a unique design curated specifically for a treasure map theme
  • Integrated Google Maps API to provide real-time GPS updates, using a proximity-based system to enable users to unlock treasures based on their current location
PythonDjango RESTPostgreSQLJavaScriptReactNext.jsTailwindFramer MotionGoogle Maps API
Backend
Treasure Hunt API
Frontend
Treasure Hunt frontend