Skip to content

ngongochan/MyEvents

Repository files navigation

Group Repository for COMP SCI 2207/7207 Web & Database Computing

MyEvents

Project Overview

Every day, the University of Adelaide and its student clubs host dozens of events—from social mixers and pub crawls to career expos and skill-building workshops. These activities are scattered across multiple platforms (Instagram, Facebook, faculty websites), making it hard for students—especially first‑years—to keep up. As a result, valuable opportunities are often missed.

MyEvents is a single, university‑focused platform (think Eventbrite for Adelaide Uni) where verified students and staff can:

  • Discover and browse upcoming events
  • Search, filter, and view rich event details
  • Register or purchase tickets (free and paid on-site)
  • Create and publish their own events

With MyEvents, no one in our community will miss out on the experiences they care about.


Prerequisites

  • Node.js (v14+) and npm
  • MySQL service running (v5.7+ or 8.0+)

Installation & Setup

  1. Clone the repo and install dependencies:

    git clone https://github.com/UAdelaide/25S1_WDC_UG_Groups_113.git
    cd myevents
    npm install
  2. Import the database schema (ensure MySQL is running):

    service mysql start
    mysql -u root -p < db/MyEvents.sql
    # when prompted, enter your MySQL root password
  3. Start the application on http://localhost:8080:

    npm start

Warning

The Google OAuth login/signup only works on http://localhost:8080 due to our Google API setup.

  1. To explore the admin features, you can use the provided account below to log in
    Email: admin.myevents@uoa.com
    Password: password123

Features & Functionality

Project Features by Role

Feature Admin User Visitor
Admin Dashboard
User Management
• Search & Filter Users
• List All Users
• Add & Edit Users
• Assign Admin Role
• Delete Users
Event Management
• Search & Filter Events
• List All Events
• Create & Edit Events
• Upload Event Images
• Delete Events
Event Browsing & Ticketing
• Browse & View Details
• Filter by Type & Date
• Ticket Quantity Control
• Purchase Tickets
Authentication & Profiles
• Local Signup & Login
• Google OAuth Integration
• Profile Management

Security Features

  • Session Management: secure cookies, session timeouts, logout handling
  • Input Validation & Sanitization: safeguard against SQL injection, XSS, and more
  • Password Security: bcrypt hashing, password complexity enforcement
  • Role-Based Access Control: fine‑grained permissions on UI and API endpoints

Optional Features

  • Password Strength Meter: real‑time visual feedback during registration
  • Email Notifications: automatic send email to welcome and confirm when buying tickets

Bugs & Known Limitations

  • Forgot Password: UI in place, backend flow not yet implemented
  • Online Payments: on‑site cash only; no integrated payment gateway yet
  • Scalability: single‑region MySQL; consider sharding or read‑replicas for heavy load

Project Team

Name Role GitHub Handle
Anh Khoa Le Backend Developer markusle56
Ngoc Han Ngo Frontend Developer ngongochan
Luong Phuoc Nguyen Frontend Developer lphuoc16

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published