As part of a two-person university team, I co-developed "TeachTeam", which is a full-stack web application designed to streamline the tutor hiring process for the School of Computer Science. The platform provides a complete, multi-user system with distinct roles and permissions for applicants, lecturers, and administrators.
The role
While my teammate and I collaborated on the overall architecture, my primary responsibilities were focused on the lecturer's user experience and the core application logic.
Front-end
On the front-end, I developed the home page and the Lecturer Dashboard using React and TypeScript. The lecturers' dashboard was a key feature of this app, with complex functionality which included: dynamic filtering of applicants by course, skills, and availability, as well as having an interactive side-panel for ranking and commenting on candidates.
Back-end
For the back-end, I was responsible for building the REST APIs with Node.js that power both the lecturer and applicant features. This involved creating the endpoints for candidates to submit their applications and for lecturers to retrieve, filter, and rank applicant data in a secure manner. I designed and managed the relational database schema using TypeORM and Cloud MySQL to store data across users, courses, and applications.
What I learnt
This project was a significant learning experience in collaborative software development. It taught me how to effectively manage distinct parts of a large codebase, use Git for version control in a team setting, and integrate front-end and back-end systems into a cohesive and functional product.
It solidified my skills across the full development stack.
Building "Teach Team" gave me a greater passion for creating practical, user-focused tools that solved real-world problems.
React (TypeScript) · Node.js · Express · TypeORM · Cloud MySQL · REST · GraphQL · Git