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.
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.
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
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.
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!