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.
- Node.js (v14+) and npm
- MySQL service running (v5.7+ or 8.0+)
-
Clone the repo and install dependencies:
git clone https://github.com/UAdelaide/25S1_WDC_UG_Groups_113.git cd myevents npm install -
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
-
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.
- To explore the admin features, you can use the provided account below to log in
Email: admin.myevents@uoa.com Password: password123
| 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 | ✓ | ✓ |
- 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
- Password Strength Meter: real‑time visual feedback during registration
- Email Notifications: automatic send email to welcome and confirm when buying tickets
- 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
| Name | Role | GitHub Handle |
|---|---|---|
| Anh Khoa Le | Backend Developer | markusle56 |
| Ngoc Han Ngo | Frontend Developer | ngongochan |
| Luong Phuoc Nguyen | Frontend Developer | lphuoc16 |