Campus Connect is a simple college event management platform that helps students discover campus events, register for them, and manage their registrations. Organizers can create and manage events from an organizer dashboard.
- Browse upcoming campus events
- Search events by name
- Filter events by category
- Sort events by date or registration popularity
- View event details
- Register for events
- Prevent duplicate registrations
- Prevent registration for full, past, or cancelled events
- See available seats
- View upcoming and past registrations
- Cancel registrations
- Automatically restore a seat after cancellation
- Access an organizer dashboard
- Create events
- Edit events
- Cancel events
- Delete events
- Validate event name, date, venue, category, and capacity
- Manage only the events assigned to the current organizer
- Student and organizer roles are supported
- Cancelled events are hidden from normal student event listings
- Cancelled registrations are not counted as active registrations
- Event seat counts stay synchronized with registrations
- Missing events and empty search results are handled gracefully
- API errors are handled with user-friendly messages
- Framework: Next.js
- Language: TypeScript
- Styling: CSS
- Testing: Vitest
- Package Manager: npm
- Deployment: Vercel
- Data: In-memory seed data
The current project uses seeded in-memory data. Data is reset when the application/server is restarted.
git clone <your-repository-url>
cd campus-connectnpm installnpm run devOpen: http://localhost:3000
npm run testIf your project contains lint and build scripts, you can also run:
npm run lint
npm run buildCampusConnect/
βββ app/
β βββ events/
β β βββ [id]/
β β βββ page.tsx
β βββ organizer/
β β βββ page.tsx
β βββ registrations/
β β βββ page.tsx
β βββ globals.css
β βββ layout.tsx
β βββ page.tsx
β
βββ components/
β βββ Shared UI components
β
βββ data/
β βββ auth.ts
β βββ events.ts
β βββ registrations.ts
β
βββ tests/
β βββ Application tests
β
βββ package.json
βββ tsconfig.json
βββ vitest.config.ts
βββ README.md
Students can browse upcoming events and narrow the results using search and category filters.
Search is:
- Partial
- Case-insensitive
- Compatible with category filtering
Events can also be displayed using:
- Default order
- Date order
- Registration popularity
Before creating a registration, the application checks that:
- The user is a student
- The event exists
- The event is not cancelled
- The event has not already passed
- Seats are available
- The student does not already have an active registration
A successful registration decreases the available seat count.
When a student cancels an active registration:
- The registration is cancelled
- The available seat count increases
- The cancelled registration is no longer treated as active
Organizers can manage their events through the Organizer dashboard.
Event validation includes:
- Required event name
- Required description
- Required venue
- Required category
- Future date and time
- Positive event capacity
Campus Connect: https://campusconnect1273.vercel.app/
Before deploying changes, verify:
- Event search works
- Category filtering works
- Search and category filtering work together
- Default event order works
- Date sorting works
- Popularity sorting works
- Empty search results are handled
- Event details work
- Missing events are handled
- Registration works
- Duplicate registration is blocked
- Full events cannot be registered for
- Past events cannot be registered for
- Cancelled events cannot be registered for
- Seat counts update after registration
- Student cancellation works
- Seat counts update after cancellation
- Cancelled registrations are not counted as active
- Organizer event creation works
- Organizer event editing works
- Organizer event cancellation works
- Organizer event deletion works
- Invalid event data is rejected
- Students cannot access organizer-only actions
The application is deployed on Vercel.
Production URL: https://campusconnect1273.vercel.app/
For a new deployment:
- Push changes to the Git repository.
- Connect the repository to Vercel.
- Vercel will build and deploy the Next.js application.
Campus Connect is designed as a lightweight college event management application. The current version uses seeded in-memory data rather than a production database or full authentication system.
The project is intentionally kept simple so that the core event discovery, registration, cancellation, and organizer management flows are easy to understand and demonstrate.