CollegeBuddy is a premium, full-stack platform designed to revolutionize campus event management. It provides a seamless experience for students to discover events, hosts to manage them with AI-driven insights, and volunteers to verify attendance using a robust QR-based ticketing system.
- Secure JWT-based authentication.
- Dedicated dashboards for Students, Hosts, and Volunteers.
- Role-based access control (RBAC).
- Create & Edit: Rich event creation with posters, descriptions, and participant limits.
- Analytics Dashboard: Real-time stats on registrations and attendance.
- AI Predictions: Integrated ML models to predict expected attendance based on event metrics.
- Instant Booking: One-click registration for campus events.
- QR Generation: Automatic generation of unique, secure QR tickets stored locally and in the database.
- Event Discovery: Dynamic list of upcoming events with real-time updates.
- In-Browser Scanner: High-performance QR scanner built with
html5-qrcode. - Instant Validation: Real-time ticket verification and attendance marking.
- Anti-Fraud: Prevents duplicate entries or invalid ticket usage.
- Framework: React 19 (Vite)
- Styling: TailwindCSS & Lucide icons
- State/Routing: React Router 7
- API Client: Axios
- Scanning: html5-qrcode
- Framework: FastAPI (Python 3.10+)
- Database: PostgreSQL / SQLite (SQLAlchemy ORM)
- Security: JWT tokens, Passlib (Bcrypt)
- Utilities: Qrcode (generation), Pillow (image handling)
- Library: Scikit-Learn
- Model: Linear Regression for attendance prediction
- Storage: Joblib
The system follows a modern decoupled architecture:
- Frontend: React-based Single Page Application (SPA) providing a responsive user interface.
- Backend: FastAPI REST server handling business logic, authentication, and AI processing.
- Database: Persistent storage for user data, events, and ticket records.
- AI Engine: Integrated predictions for event attendance analytics.
- Ticket System: Automated QR code generation and verification pipeline.
Follow these steps to get CollegeBuddy running on your local machine.
git clone https://github.com/harshit-033/College_Buddy.git
cd College_BuddyGo to the backend directory and set up a virtual environment.
cd backend
python -m venv venv
# Windows
venv\Scripts\activate
# Linux/macOS
source venv/bin/activate
pip install -r requirements.txtDatabase Initialization:
By default, the system uses a SQLite file (test.db) for development. To initialize a Postgres database, update database.py with your credentials.
Run the Server:
uvicorn main:app --reloadThe backend will be available at http://127.0.0.1:8000.
Open a new terminal and go to the frontend directory.
cd frontend
npm installEnvironment Config:
Create a .env file in the frontend folder:
VITE_API_BASE_URL=http://127.0.0.1:8000Run the Frontend:
npm run devThe app will be available at http://localhost:5173.
| Role | Permissions | Key Features |
|---|---|---|
| Student | Browse, Register | QR Tickets, Event History, My Account |
| Host | Create, Manage, Analyze | AI Attendance Prediction, Poster Upload, Real-time Stats |
| Volunteer | Scan, Verify | QR Scanner, Attendance Marking, Validations |
CollegeBuddy uses a Linear Regression model to assist hosts in planning.
- Inputs: Participant limit, Event fee, Total registrations.
- Output: Predicted actual attendance.
- Goal: Helps organizers optimize resources like seating, catering, and venue size.
- Automated Certificates: Generate and email participation certificates (PDF) instantly after the event.
- Payment Gateway: Integration for paid workshops and high-value events.
- Push Notifications: Real-time reminders for upcoming events via Web Push or Email.
- Mobile App: Dedicated Android/iOS app for better scanning performance.
- Live Dashboards: Interactive charts (Recharts) for deeper event analytics.
- Multi-Campus Support: Scale the platform to support multiple institutions simultaneously.
Contributions are welcome! Please feel free to submit a Pull Request.
- Fork the Project
- Create your Feature Branch (
git checkout -b feature/AmazingFeature) - Commit your Changes (
git commit -m 'Add some AmazingFeature') - Push to the Branch (
git push origin feature/AmazingFeature) - Open a Pull Request
