Projects/ MSU-DU Joint Hackathon 2023 (uConnect)

Over 30 hours, I and a team of 4 other people built a multi-university event aggregator website with Node.js and MongoDB. We called our project/website uConnect.

Live Demo
Check It Out »

Problem

Engagement outside of class is low at commuter universities like Metropolitan State University of Denver or University of Colorado Denver. Furthermore, cross-campus events such as this very hackathon are not visible to students. Sometimes university campus events are open to students and or other people outside of the student body of the hosting institution, and there is no good way of advertising these kinds of events for outsiders.

Solution

To promote higher engagement with events on campus and between campuses, we propose a multi-campus event aggregator website.

Features & Functionality
  • Events from all participating colleges and universities.
    • Their respective event feeds will be scraped so that the site is pre-populated and continuously updated with new events and content.
  • Different feeds to find events that interest you.
    • For You: Recommended events based on your profile.
    • Popular: The most popular upcoming events as determined by the number of people that sign up for them.
    • Recent: The most recently posted or added events.
    • Upcoming: Events that are starting soonest to the current time.
  • Event search functionality.
  • Account creation and profile.
    • View the events that you are registered for.
  • Sign Up For Events.
    • Register for events that you would like to attend directly in uConnect.
    • See the breakdown of which other institutions people are coming from.

Technical Approach

Since I had the most programming experience out of the other team members and also had experience implementing web applications end-to-end, I stepped up to provide the technical direction for the project's implementation.

  • The backend is a standard Express.js/Node.js app.
  • Events, user accounts, and other data is stored in MongoDB and accessed in Node.js using the mongoose library.
  • Scraping of the events is done by scraping each university's respective ICS calendar feed using the node-ics library.
    • These events are stored in our database and scraping only happens once a day.
  • Since one of the team members did not have any front end JavaScript experience going into the project, I configured backend to make use of server side rendering using nunjucks.
  • Front end style and layout is handled by Bootstrap 5.

Screenshots

Home page Home page, also shows the bar breaking down the participation by members of different institutions.

Event page An event page for an event already registered for by the logged-in user.

Search page Search engine in action.

What Didn't Get Done?

Given the limited amount of time provided by the competition, naturally there were a number of features that did not get finished in time for judging.

  • Event creation and management functionality for event organizers.
  • Content moderation and event or user reporting functionality.
  • Admin panel or site/user management functionality.
  • For You feed algorithm.
  • User profile settings (name, email, password change, etc).
  • Other features and functionality limiting this from being a fully production-ready product...

We have expressed interest in fully fleshing out the project. Any future plans or work would be determined by interest from faculty.

Judging

Once coding time ended and final commits were made, a panel of judges came around to look at presentations and demonstrations by the different teams. Projects were evaluated by both their idea as well as whatever working progress was made.

After a long judging period, our team was awarded first place (tying for first with another team's mobile app project).

Winners Winners!

We have expressed interest in fully finishing the project. Any future plans or work would be determined by interest from faculty.

Source Code

Project source code and other information is available on GitHub:
https://github.com/kzaremski/msu-du-hack23-multi-campus-events-hub

Copyright © 2020-2025 Konstantin Zaremski — All rights reserved. Styles by Neumorphism UI Bootstrap.