UCL Yellow Pages
Connecting students, one profile at a time.
Overview
UCL Yellow Pages is a web application designed to bridge the gap in student connectivity at University College London. In a large institution where students are frequently asked to collaborate with peers they have never met, finding relevant contact information can be slow and frustrating. This platform allows students to create and manage profiles containing their contact details — such as emails, social media accounts, and phone numbers — within a secure, authenticated environment, with full control over their visibility and privacy settings.
Solution
The application is built with the Django web framework, backed by a PostgreSQL database, and uses Django's ORM to keep Python as the sole language throughout the stack. Authentication is handled via UCL email verification — users must register with a valid UCL email address, ensuring the platform remains exclusive to UCL students. From there, students can create and customise their profiles with contact details, configure visibility controls using Role-Based Access Control (RBAC), and search for peers using filters such as course, faculty, department, or cohort. Search is powered by a combination of trigram and full-text search, offering auto-completion and typo tolerance for a smooth user experience.
The platform also includes profile view tracking — a personal dashboard that logs who has accessed your profile along with timestamps — and a reporting system that allows students to flag inappropriate profiles or misuse of contact information, with all actions reviewed and logged by admins.
Additional Details
- Tech Stack: Django, PostgreSQL, Python, HTML, CSS, JavaScript.
- Notable Algorithms: Trigram tokenisation (O(n)) for auto-completion and full-text search (O(log n)) 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.
- Intended but not implemented: UCL Single Sign-On (SSO) integration and automatic profile pre-filling via the UCL directory API were designed as stretch goals but were not realised due to time and access constraints. A formal privacy policy and terms of service were also planned but not yet in place.
- Team: Developed as a group project (myself, Jude Hawrani, Fakhrurrazi Riduan, and Yik Hui Ng) at UCL.
- Current Goal: clean up the codebase, our repo is horrible because of our inexperience at the time.