A centralized event-management system that connects the University of Toronto community through an interactive map, RSVP tracking, real-time notifications, and inclusive accessibility features.
Hover or click pins to explore events across Robarts, Sidney Smith, and more. Filter by tag, date, or building to discover exactly what you needβfast.
- Fiona Verzivolli @FionaVerzivolli
- Andrew Sasmito @AndrewSasmito
- Naoroj Farhan @pirate2580
- Edric N.H.G. Ho @Edric.main(cryingFace)
- Presentation Slides: Click For Slides!
Collaborators at the University of Toronto, including project mentors, peer reviewers, and the teaching team.
EventHiveUofT solves the problem of fragmented campus-event information by offering a single platform where students and staff can create, discover, and manage events with ease.
Highlights
- Event Creation & Management with real-time storage via Firebase
- Interactive Campus Map (see hero above) powered by JXMapViewer
- RSVP & Email Notifications so organizers and attendees stay in sync
- Accessibility features such as color-blind-friendly markers and planned screen-reader support
Our goal is to build a connected campus community where networking, learning, and socializing are effortless. π
Visualize events across U of T with clickable pins and building overlays.
Technical Highlights
- Built on JXMapViewer for smooth pan/zoom
ViewEventInteractor&ViewRSVPInteractorsynchronize map state with Firebase
(Screenshots shown in the hero section above.)
Users can create, modify, and delete events with fields for name, organizer, date/time, location (lat 43β44 / lon -78β-79), description, and tags.
Technical Highlights
CreateEventInteractor&ModifyEventInteractorhandle validation and Firebase persistence- Data stored via
FirebaseServicefor low-latency updates
Create Event:
Modify Event:
Attendees RSVP with one click; organizers track numbers and send updates.
Technical Highlights
RSVPEventInteractormanages attendance listsNotifyUserInteractor+EmailSendertrigger confirmation and reminder emails
RSVP Here:
View RSVPed events here (in this example, there are none):
Secure Firebase-backed accounts with email/password, duplicate checks, and strength validation.
Register Screen:
Login Screen:
- Instant confirmations β βYouβre in!β email sent immediately after RSVP (
NotifyUserInteractorβEmailSender). - Update / cancel blasts β edits or cancellations trigger a single email to all current RSVPs.
- Template editor β organizers tweak subject/body (Markdown supported) with no redeploy.
- Delivery logs β each outbound email writes a status doc in Firebase for audit & retry.
- Zoomable UI & resizable text for low-vision users.
- Alt-text on all images for screen readers.
- Live error feedback via ARIA
role="alert"regions.
Roadmap: screen-reader labels on pins, high-contrast theme toggle, full WCAG 2.1 AA audit.
This project is licensed under the MIT License, which allows for free use, modification, and distribution of the code with proper attribution. For more details about your rights and limitations under this license, see the LICENSE file included in this repository.
- Permitted: Modification,and private use.
- Conditions: The code must include attribution to the original authors.
- Limitations: There is no warranty, and the contributors are not liable for any damages.
We value your feedback to continuously improve EventHiveUofT. If you have suggestions, encounter issues, or simply want to provide us with some comments, please use the methods below:
-
GitHub Issues:
- Report bugs or request features directly through our GitHub Issue Tracker. Use clear titles and descriptions to help us understand the issue.
-
Google Form:
- Fill out our Feedback Form to share your thoughts, experiences, or suggestions.
Guidelines for Feedback:
- Be Specific: Describe issues or suggestions clearly, including screenshots if possible.
- Constructive Language: Please use respectful and helpful language to foster productive discussions.
- Response Time: We aim to respond to feedback ASAP.
Contributions are welcome and encouraged! Hereβs how you can get involved:
-
Fork the Repository:
- Click the Fork button at the top of the repository page.
- This creates a copy of the repository under your GitHub account.
-
Clone the Fork:
git clone https://github.com/FionaVerzivolli/EventHiveUofT.git cd EventHiveUofT -
Create a Branch:
- Use a descriptive name for your branch:
git checkout -b new-feature-branch
- Use a descriptive name for your branch:
-
Make Changes and Commit:
- Implement your changes, ensuring the code is well-documented.
- Run all tests before committing to make sure nothing is broken.
- Commit changes:
git add . git commit -m "Add new feature: <description>"
-
Push to GitHub:
git push origin new-feature-branch
-
Create a Pull Request:
- Navigate to the original repository and click New Pull Request.
- Fill out the description clearly detailing the changes made.
- Code Style: Follow our Java coding standards. This helps maintain readability across the entire project.
- Tests: Ensure unit tests are added for new features, and all existing tests pass.
- Documentation: Update the README and any other relevant documentation to reflect changes.
- Pull Request Reviews: Wait for project maintainers to review your changes. Feedback might be provided to make modifications before merging.
Please read the following PR guideline provided by GitHub:
- Use IntelliJ IDEA for development and set up Google Checkstyle for consistent code quality.
- Run tests regularly using:
mvn test
- Weekly Updates: The main contributors will push updates and bug fixes on a regular basis to ensure stability and improvements.
- Dependency Updates: All dependencies listed in the
pom.xmlwill be reviewed and updated if needed. - New Feature Releases: Major new features will be developed on a separate branch and merged after thorough testing, following the semantic versioning guidelines.
Monitoring Tools:
- GitHub Actions: Automated builds and tests will be used to maintain code quality.
- Firebase Dashboard: To monitor real-time data and ensure stability in user authentication and data management.
Future Maintenance Considerations:
- Adding Support for New Features: Plans to implement user-customizable UI themes to ensure inclusive usage by using React.
- Scaling Application: If user adoption grows significantly, migrate to a more scalable database and consider incorporating cloud computing solutions like AWS Lambda for event processing.
Q: What should I do if I encounter an error during the registration process?
- A: Ensure all form fields are correctly filled out (username, email, password). Check if the email format is valid and the username isn't already taken.
Q: Why am I unable to see all events on the map?
- A: Ensure that you have enabled all event filters. By default, only certain types of events may be displayed based on your preferences. Check the filters on the sidebar and adjust the event filter.
Q: Can I delete an event after I have created it?
- A: Yes, you can delete an event that youβve created. Go to Modify Event, select the Delete Event at the bottom, and click on it.
Q: Why am I not receiving email notifications?
- A: Check your email settings to ensure notifications are not being blocked. Additionally:
-
- Verify that your email address is correct in Profile Settings.
-
- Check your spam folder.
-
Q: How do I update event information after itβs been created?
- A: If you are the event organizer, navigate to Your Events from the main menu. Click on Modify Event next to the event you wish to modify, make the necessary changes, and save them. The attendees will be notified of any updates automatically.
Q: Can I use EventHiveUofT if Iβm not affiliated with UofT?
- A: The platform is primarily built for the University of Toronto community, but non-affiliated users can still join public events if allowed by the event organizer. Please note that some features, like creating events, may be restricted to authenticated UofT users.
Q: Why can't I find certain buildings on the interactive map?
- A: Ensure that the map is fully loaded and that you are zoomed in enough. Some smaller buildings or less significant landmarks may not be visible at a higher zoom level. The list of buildings includes major UofT locations such as Robarts Library, Sidney Smith Hall, and more.
Issue: Firebase Connection Fails
Solution:
- Verify Service Account Path: Ensure the
firebase-service-account.jsonis correctly placed in the/private/directory and that its path matches the GOOGLE_APPLICATION_CREDENTIALS environment variable. - Permission Checks: Confirm that the credentials have the required permissions within the Firebase project to access Firestore, Authentication, and other used services.
- Network Issues: If you're behind a firewall or VPN, check that the required ports for Firebase are not blocked.
Issue: Maven Build Errors
Solution:
- Run Clean Build: Clear previous build artifacts by running:
mvn clean install
- Update Dependencies: Ensure that all dependency versions are compatible with each other by checking the
pom.xmlfile. - JDK Issues: Make sure you are using Java 11 or higher, and that the Java environment variable (
JAVA_HOME) points to the correct version.
Issue: Map Pins Not Showing Up
Solution:
- Dependencies Set Up: Verify that the project dependencies have been setted up and Maven has built the porject successfully.
- Map Data Not Loaded: Check the console logs for errors related to loading the JXMapViewer data. Make sure the data endpoints are properly connected.
Issue: Unable to RSVP to Events
Solution:
- Login Check: Make sure you are logged in before attempting to RSVP to an event.
- Event Capacity: Verify that the event isnβt at full capacity. The RSVP function will not allow users to join if the event has reached its limit.
- Network Stability: Ensure your network connection is stable, as RSVP actions require an active connection to Firebase.
- Mobile App Integration π±: Build an Android and iOS version of EventHiveUofT to extend accessibility and allow users to RSVP to events on-the-go.
- Personalized Recommendations π‘: Use AI-based algorithms to recommend events to users based on their interests and past activity.
- Screen Reader Compatibility π: Integrate screen reader support to make the application more accessible to users with visual impairments.
- User-Defined Event Categories π: Allow users to create custom event categories to better organize and filter the events they are interested in.
- Push Notifications π: Include push notifications for important event updates, RSVP reminders, and upcoming deadlines.
For any additional inquiries or support, feel free to contact us via the following channels:
- Email: [email protected]
Thank you for using EventHiveUofT! We are excited to have you join our vibrant community and help you discover amazing events on campus. π