Skip to content

vallabhalabs/CampusPulse

Β 
Β 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

4 Commits
Β 
Β 
Β 
Β 

Repository files navigation

πŸŽ“ CampusPulse

A Digital Infrastructure for College-Wide Event Collaboration and Control

Mini Project β€” Bachelor of Technology in Computer Science and Engineering, CVR College of Engineering, 2025–2026

Landing Page


πŸ‘₯ Team

Name Roll Number
Shaik Faizan Ahmed 23B81A05L3
AVS Mohan Kumar 23B81A05M6
K Prem Sagar Reddy 23B81A05N5

πŸ“Œ Overview

CampusPulse is a multi-tenant SaaS web application that digitizes and streamlines college event management. Each institution gets a dedicated portal via a unique URL slug (e.g. /iit-hyd/events). The platform eliminates manual paperwork, prevents unauthorized entries, enforces seat limits, and provides complete transparency across the event lifecycle.


✨ Features

  • Multi-Tenant Architecture β€” Each college operates its own isolated portal with a unique slug-based URL
  • Role-Based Access Control β€” Admin, Coordinator, and Student roles with clearly defined permissions
  • Event Management β€” Create events with capacity limits, categories, deadlines, venue, and duration
  • Razorpay Payments β€” Paid event registration with per-organization key configuration
  • QR Attendance System β€” Per-event QR for bulk scanning + per-student QR for secure individual entry; duplicate entry prevention
  • Real-Time Analytics β€” Dashboard showing registrations, attendance, revenue, and category breakdown
  • Announcement System β€” Targeted announcements to all members or specific event participants
  • Email Reminders β€” Automated cron job sends reminder emails 1 hour before events
  • Organization Customization β€” Logo, banner, theme colors, and portal branding

πŸ–₯️ Screenshots

Landing Page

Landing Page

Login Page

Login Page

My Organizations

My Organizations

Analytics Dashboard

Analytics

Events Page

Events

Create New Event

Create Event

Razorpay Payment

Razorpay

Announcements

Announcements

Customize Organization

Customize Org


πŸ—‚οΈ System Design

System Architecture

System Architecture

Activity Diagram

Activity Diagram

Class Diagram

Class Diagram


πŸ—‚οΈ Project Structure

CampusPulse/
β”œβ”€β”€ config/              # Database connection
β”œβ”€β”€ controllers/         # Business logic (auth, events, orgs, analytics)
β”œβ”€β”€ jobs/                # Cron jobs (event reminders)
β”œβ”€β”€ middleware/          # Org slug resolver, auth guards
β”œβ”€β”€ models/              # Mongoose schemas (User, Organization, Event, Announcement)
β”œβ”€β”€ routes/              # Express route definitions
β”œβ”€β”€ utils/               # Email utility
β”œβ”€β”€ views/               # EJS templates
β”œβ”€β”€ public/              # Static assets
β”œβ”€β”€ assets/              # Screenshots and diagrams
β”œβ”€β”€ frontend/            # Next.js 14 frontend
β”‚   └── src/
β”‚       β”œβ”€β”€ app/         # Pages
β”‚       β”œβ”€β”€ components/  # Reusable UI components
β”‚       β”œβ”€β”€ contexts/    # React contexts
β”‚       β”œβ”€β”€ services/    # API service layer
β”‚       └── types/       # TypeScript types
└── server.js            # Express entry point

πŸ› οΈ Tech Stack

Layer Technology
Frontend Next.js 14, React 18, TypeScript, Tailwind CSS
Backend Node.js, Express.js
Database MongoDB, Mongoose
Auth JWT, bcryptjs, express-session
Payments Razorpay
Image Storage Cloudinary
Email Nodemailer (Gmail SMTP)
QR Codes qrcode
Scheduled Jobs node-cron

πŸ‘₯ Roles & Permissions

Role Permissions
Admin Manage org, members, analytics, Razorpay config, announcements, customize portal
Coordinator Create/edit/delete events, verify payments, scan QR, view participants
Student Browse & register for events, make payments, view personal QR, track attendance

πŸš€ Getting Started

Prerequisites

  • Node.js v18+
  • MongoDB (local or Atlas)
  • Cloudinary account
  • Gmail account with App Password

Backend Setup

git clone https://github.com/Shaik-Faizan-Ahmed/CampusPulse.git
cd CampusPulse/campus-pulse-main
npm install
cp .env.example .env   # Fill in your credentials
npm start              # Runs at http://localhost:5000

Frontend Setup

cd frontend
npm install
cp .env.local.example .env.local
npm run dev            # Runs at http://localhost:3000

πŸ” Environment Variables

Copy .env.example to .env and configure:

Variable Description
MONGO_URL MongoDB connection string
JWT_SECRET Session signing secret
EMAIL_USER Gmail address
EMAIL_PASS Gmail App Password
CLOUDINARY_CLOUD_NAME Cloudinary cloud name
CLOUDINARY_API_KEY Cloudinary API key
CLOUDINARY_API_SECRET Cloudinary API secret
RAZORPAY_KEY_ID Razorpay key ID (optional)
RAZORPAY_KEY_SECRET Razorpay key secret (optional)

⚠️ Never commit your .env file. It is already in .gitignore.


πŸ“„ License

ISC License β€” CVR College of Engineering, 2025–2026

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages

  • EJS 34.7%
  • TypeScript 28.8%
  • JavaScript 22.0%
  • CSS 14.5%