/seminar-roulette

Final year university project - an event recommendation platform for the University of Glasgow academic community.

Primary LanguageTeXMIT LicenseMIT

Seminar Roulette

Django Pipeline Node.js Pipeline MIT license GitHub contributors

Background

Academics at the University of Glasgow are typically time-poor and do not have time to trawl through lists of research seminars to find one that they haven't attended before and is of interest to them. The Unveristy of Glasgow currently presents various methods of discovering events taking place at the University.

Seminar Roulette is an event recommendation platform for the University of Glasgow academic community. It aims to become the University's central source for seminar management and organisation. The web application contains a recommender system that suggests seminars to users based on how they have rated past events. Furthermore, it pulls in data from various University seminar sources, such as, Samoa Events and Eventbrite.

The system was developed by Ollie Gardner as his 4th year individual project for a BSc Software Engineering degree. The project was supvervised by Dr Jeremy Singer.

Requirements

  • Python 3.7 or later
  • Python packages: listed in requirements.txt
  • Node.js 12.16.1 or later
  • npm packages: listed in package.json
  • PostgreSQL 10.7 or later

See manual.md for build instructions.

File Structure

This repository contains all of the submitted project files and also the application's source code. The project has been structured as follows.

.
├── data                    # Data acquired during the project.
├── dissertation            # LaTeX source for dissertation.
├── images                  # Images of the application.
├── meetings                # Records of supervisor meetings.
├── presentation            # Prerecorded video presentation.
├── seminar-roulette        # Source code for the project.
├── status-reports          # Weekly reports sent to supervisor.
├── LICENSE                 # License for the project.
├── manual.md               # Guide for how to setup the codebase.
├── plan.md                 # Week-by-week plan for project.
├── README.md               # README file.
└── timelog.md              # Time log for the whole project.

Screenshots

Homepage Expanded Seminar
Homepage Expanded Seminar Tile
Search Page Dark Theme
Search Page Dark Theme

User Manual

A manual has been created to explain how to run and setup Seminar Roulette. See manual.md for more details.

Acknowledgements

The code found in the shibboleth folder is reponsible for integrating the University's single sign-on to Seminar Roulette. Full credit for the code contained in this folder goes to the authors of django-shibboleth-remoteuser. This project has been licensed under the MIT License.

The recommender system code found within recommender.py was partially implemented using a tutorial. Partial credit for this code goes to Nick Becker for his Matrix Factorisation for Movie Recommendations in Python tutorial.

License

This project is licensed under the MIT License. See LICENSE file for more details.


Ollie Gardner