Vladislav Pomogaev

Engineering Graduate – VE7ZAH

Club Database Website

Club Database (found at clubdatabase.net) provides a clear, up-to-date, searchable list of clubs at UBC. The website indexes clubs, design teams, associations, societies, fraternities/sororities, and sports teams, so that students from UBC can easily search and find what they are looking for. You can also review student organizations on Club Database, which offers student organizations the opportunity to receive feedback and improve.

Club Database Homepage. You can use the sidebar to filter clubs to your liking.
Club Database Homepage. You can use the sidebar to filter clubs to your liking, and the search function of top is accurate and responsive.

I programmed Club Database over a five month period using the Laravel PHP development framework. It was a similar set of skills I used to create my very first content management system, but this time the core functionalities were neatly hidden away from me, and using the Laravel routes, middle-ware, and views made it a much faster, secure, and streamlined process.

I took a break from development to study for finals!
I took a break from development to study for finals!

In addition to using the Laravel PHP framework, a lot of Javascript and JQuery code was written for the “small” features. A search-api was created to support AJAX requests from the homepage (so that the page does not have to load every time you make a search, content only gets updated), and a MySQL database was used to store all of the information in the backend.

Website Functionality

The website features the following functionality:

  • Complete listing of student-run organizations on campus
  • Live-searchable/filterable list
  • Ability for students to rate and review clubs
    • Ratings are anonymized on the front-end
    • Ratings help clubs appear higher in search results
    • Anti-spam for comments, IP-based cooldown
  • Admin has back-end protected area
    • Admin can remove/edit comments and pages
    • Email system sends clubs reminders to update content/updates on comments
  • Clubs can login and edit their club page
    • Clubs can respond to comments (response from exec team)
  • Club page contains:
    • Basic details (name, email, etc.)
    • Custom links for social-networking pages
    • Club reviews and exec. team responses
A review page for the UBC UAS team. On the left you can find the description of the club, as well as a collection of user-submitted ratings. On the right, common links that lead to the club’s pages.
Here is the view from the admin’s page. You can see all listings that you own (a user can own multiple listings). Listings and reviews are editable, searchable, and flaggable.
Sample edit page for a club. If some information is missing or wrong on a club’s listing, either the admin (myself) or the designated owner of that club page can login and edit. Users can also requests accounts be made for them in order to obtain access to this edit page.

Gathering the initial data

In order to attract club executives to use this platform, an initial database was created with just over 300 clubs. A collection of Python scripts were made and used to scrape data from initial sources, such as Facebook, and this outdated club listing. Of course though, a majority of the leg work had to be done by hand.

Regardless, this strategy worked well, and soon after publishing the website onto social media networks, I got a flood of club suggestions through the “suggest” feature on the homepage.

Moving forward

I plan to support this website up until 2021, by which time I will most certainly graduate. Hopefully I can pass on the service for someone else to manage, or maybe make it self-sufficient in the way it operates. I will also have a more “official” launch in September 2019, where I’m expecting the website to get a lot more traffic than it did in the middle of the summer.

Unfortunately, I have decided to keep the website closed-source until I can put in additional features to make it a more complete experience. Thanks for reading!