OpenJio
A school team project for campus event discovery, organizer tools, and capacity-based registration with first-come-first-served and weighted allocation.
Archived project · No longer actively maintained.
OpenJio is a campus events platform built as a team project for CS203 Collaborative Software Development. It connects students looking for activities with clubs and societies managing events, registrations, and limited places.
What It Does
Students browse a central event hub, inspect event details, and register for activities. Organizers create events with dates, venues, registration requirements, and capacity limits. Account management, student profiles, image uploads, and password recovery support the wider workflow.
Tech Stack
The frontend uses React, TypeScript, and Tailwind CSS, with shadcn and Material UI components. A Spring Boot backend handles application logic and persists students, organizers, events, and registrations in MySQL. Authentication uses Spring Security and JWTs, and both application layers include Dockerfiles.
Allocating Limited Places
Registration is more involved than adding a name to a list. The backend includes first-come-first-served, random, and weighted-random allocation strategies. Each strategy operates on an event's applicants and capacity, then saves acceptance or rejection decisions against their registrations.
This gives the project scope across interface design, relational data modeling, authentication, and application-specific algorithms. The repository also contains service tests for accounts, events, organizers, and password recovery.
Project Context
Built with Ashley, Ron, Pramit, Ignatius, and Darius as a school team project. This writeup describes the shared application. It is retained as an archived project and is no longer actively maintained.