London, UK
Marko Stefanov

Software, algorithms & build systems

All projects
Web · Django

UCL Yellow Pages

Connecting students, one profile at a time.

Team
4 students at UCL
Stack
Django, PostgreSQL, Python, JavaScript
Highlights
UCL email verification, RBAC, fuzzy search
Status
Refactoring

Overview

UCL Yellow Pages bridges a gap in student connectivity at University College London. At a large university, students are often asked to collaborate with peers they have never met, and finding the right contact details can be slow and frustrating.

The platform lets students create and manage profiles with their contact details, such as email, social media and phone number, inside a secure, authenticated environment where they have full control over visibility and privacy.

A walkthrough of UCL Yellow Pages.

The Solution

The app is built with Django on a PostgreSQL database, using Django’s ORM so that Python is the only language across the back end. Registration requires a verified UCL email address, which keeps the platform exclusive to UCL students.

Students customise their profiles, control who can see each detail using role-based access control (RBAC), and search for peers by course, faculty, department or cohort. Search combines trigram matching and full-text search, giving auto-completion and typo tolerance.

A personal dashboard shows who has viewed your profile and when, and a reporting system lets students flag inappropriate profiles or misuse of contact details. Admins review and log every report.

Additional Details

  • Search: trigram tokenisation for fast, typo-tolerant auto-completion, plus full-text search for ranked results.
  • Data structures: B-tree indexes for fast filtering, a server-side queue for time-expiring access logs, and a graph structure for modelling student relationships and surfacing relevant suggestions.
  • Designed but not built: UCL single sign-on (SSO) and automatic profile pre-filling from the UCL directory API were stretch goals that time and access constraints ruled out. A formal privacy policy and terms of service were also planned.
  • Team: built with Jude Hawrani, Fakhrurrazi Riduan and Yik Hui Ng.
  • Current goal: refactoring the codebase. It was one of our first team projects, and we’ve learned a lot since.
Next project Arm: GPU Build Team