Backend Case Study

Tutor Hiring Platform

A role-based hiring system focused on backend logic, authentication, and relational data modelling.

BackendAuthDatabase

Problem

Tutor hiring processes relied on spreadsheets and manual coordination, offering no structured way to manage applications, rankings, or access control.

Goal

Build a backend platform that supports structured applications, enforces role-based permissions, and simplifies tutor selection workflows.

System Architecture

Traditional web backend architecture prioritising data integrity and access control.

  • GraphQL API for flexible data querying
  • JWT-based authentication and authorisation
  • Relational data model for courses, applications, and rankings
  • Stateless API design for scalability

API & Data Design

  • Mutation: applyForCourse – submit tutor application
  • Query: applicationsByCourse – retrieve applicants
  • Mutation: rankApplicant – manage applicant ranking
  • Backend-enforced permissions to prevent unauthorised access
  • Rankings stored separately to allow reordering without data duplication

Key Decisions & Trade-offs

  • Chose GraphQL over REST to support complex relational queries efficiently
  • Handled permissions at the API layer to reduce frontend complexity
  • Used a relational database to ensure consistency across rankings and applications

Tech Stack

Node.js · TypeScript · TypeGraphQL · TypeORM · Cloud MySQL · JWT · React

Links

Live demo (WIP)