Campus Club Event Management System
- About
- Features
- Technologies
- Prerequisites
- Installation
- Usage
- Folder Structure
- Database Schema
- API Endpoints
- Contributing
- License
- Contact
ClubConnect is a full-stack web application designed to streamline the management of campus clubs and events. It allows club executives and SUAdmins to create, manage, and approve events and funding requests, and enables students to browse and RSVP to events.
- User authentication and role-based access (Students, Club Executives, SUAdmins)
- CRUD operations for clubs, events, announcements, and funding forms
- Real-time messaging between students and SUAdmins
- RSVP management for campus events
- Responsive UI built with React
- Frontend: React, JavaScript, CSS
- Backend: Node.js, Express.js, Prisma ORM
- Database: MySQL (hosted on Railway)
- Authentication: JWT
- State Management: React Context / Hooks
- Deployment: Vercel (frontend), Railway (backend & database)
- Node.js (>=14.x)
- npm or yarn
- MySQL database (Railway or local)
-
Clone the repo:
git clone https://github.com/yourusername/clubconnect.git cd clubconnect -
Install dependencies:
cd backend npm install cd ../frontend npm install
-
Setup environment variables:
- In
backend/.env:DATABASE_URL="mysql://<user>:<password>@<host>:<port>/<database>" JWT_SECRET="your_jwt_secret"
- In
frontend/.env:REACT_APP_API_URL=http://localhost:5050
- In
-
Run database migrations and seed (if applicable):
cd backend npx prisma migrate dev --name init npx prisma db seed
- Start the backend server:
cd backend npm run dev - Start the frontend:
cd frontend npm start - Open your browser at
http://localhost:3000.
clubconnect/
├── backend/
│ ├── src/
│ ├── prisma/
│ └── ...
├── frontend/
│ ├── src/
│ ├── public/
│ └── ...
└── README.md
Brief overview of key models in Prisma schema:
- User - stores user credentials and roles.
- Club - information about student clubs.
- Event - records of club events.
- FundingRequest - form submissions for funding.
- Announcement - messages broadcast to members.
- RSVP - student responses to event invites.
- SUMessage - messages between students and SUAdmins.
POST /api/users/login- authenticate user.GET /api/clubs- list clubs.GET /api/events- list events.POST /api/events- create event.- ...
Refer to the /api/docs for full endpoint documentation.
Contributions are welcome! Please open issues and submit pull requests for enhancements or bug fixes. Ensure code follows existing style and include tests for new features.
This project is licensed under the MIT License. See LICENSE for details.