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)