Skip to content

Tirthraj-Raval/CampusConnect

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

83 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Sure! Here's a detailed, styled, production-grade README.md for your project, written entirely in a markdown canvas block:


πŸŽ“ CampusConnect

An all-in-one university student engagement platform featuring student dashboards, club management, real-time event tracking, certificate generation, analytics, and live notifications.

Project Overview

CampusConnect.Demo.Video.2.mp4

πŸ“š Table of Contents


πŸ“– About

CampusConnect is a web-based platform that bridges the gap between university students and student clubs by offering:

  • A dashboard for students to explore, subscribe, and interact with clubs.
  • A powerful club admin dashboard to manage events, committee members, certificates, feedback, and real-time data analytics.
  • Live updates via WebSockets for RSVPs, notifications, and analytics tracking.

✨ Features

πŸ‘©β€πŸŽ“ Student Dashboard

  • Explore all clubs and events
  • RSVP to events
  • View issued certificates
  • Give feedback to clubs
  • Receive real-time notifications

πŸ›οΈ Club Dashboard

  • Manage committee members
  • Create and edit events
  • View event RSVP details
  • Upload and issue certificates
  • Collect and analyze feedback
  • Push notifications to subscribers
  • Track analytics (engagement, RSVP trends, etc.)

πŸ“Š Analytics

  • Live RSVP and view tracking
  • Event capacity monitoring
  • Subscriber growth trends
  • Feedback distribution pie chart
  • Certificate issuance reports

πŸ“‘ Real-time Communication

  • WebSockets for:
    • RSVP counter
    • Notifications
    • Live analytics events

βš™οΈ Tech Stack

Frontend Backend Database Real-Time Other Tools
Next.js (App Router) Express.js Supabase (PostgreSQL) Socket.io Vercel, Render
TypeScript Node.js dotenv, multer

πŸ—‚οΈ Folder Structure

client/
  └── src/
      └── app/
          β”œβ”€β”€ student-login/
          β”œβ”€β”€ clubs/[club_id]/dashboard/
          β”œβ”€β”€ admin/university-upload/
          └── ...
server/
  β”œβ”€β”€ routes/
  β”œβ”€β”€ controllers/
  β”œβ”€β”€ middlewares/
  β”œβ”€β”€ utils/
  └── src/index.js

πŸš€ Setup Instructions

# Clone the repo
git clone https://github.com/your-username/campusconnect.git
cd campusconnect

# Setup client
cd client
npm install

# Setup server
cd ../server
npm install

# Create .env files in both /client and /server
# Refer to .env.example for required variables

# Start development
npm run dev      # from client/
npm run dev      # from server/

πŸ“‘ API Routes

πŸ‘¨β€πŸŽ“ Student APIs (/api/student)

Endpoint Method Description
/subscriptions GET Get all club subscriptions
/certificates GET View issued certificates
/feedback/:clubId POST Submit feedback for a club
/notifications GET Fetch student notifications
/profile GET Get student profile data

πŸ§‘β€πŸ’Ό Club Dashboard APIs (/api/clubs/:clubId/)

Section Endpoint Method Description
Events /events, /events/:eventId GET/POST/PUT/DELETE Manage events
RSVPs /rsvps, /rsvps/download GET View and download RSVP data
Certificates /certificates/upload, /view/:id POST/GET Upload and view certificates
Committee /committee, /committee/search GET/POST/PUT/DELETE Manage committee members
Feedback /feedback/analytics GET Fetch feedback analytics (pie chart data)
Analytics /analytics GET Fetch all analytics data
Notifications /notifications/send POST Send notification to subscribers
Club Settings /edit PUT Edit club name, description, logo etc.

πŸ”Œ WebSocket Events

Event Name Direction Payload Description
join_event_room client β†’ server { eventId }
rsvp_count_updated server β†’ client newCount
join_student_room client β†’ server { studentId }
notification_received server β†’ client notification

πŸ“ˆ Analytics & Graphs

βœ… Graphs implemented

  • Event RSVPs over time (Bar graph)
  • Event views over time
  • Subscriber growth over time
  • Feedback distribution (Pie chart)
  • Certificate issuance count

Tech used: Chart.js or Recharts (client-side), Supabase queries (server-side)


πŸ› οΈ Deployment Notes

  • Frontend: Deployed to Vercel
  • Backend: Hosted on Render
  • CORS: Configured with credentials: true and proper origin
  • Certificates: Served statically from uploads/certificates/ via express.static
  • WebSockets: Socket.IO configured with proper CORS and same origin

πŸ§‘β€πŸ’» Contributors


πŸ–ΌοΈ Screenshots

πŸŽ“ Student Dashboard

image

πŸ§‘β€πŸ’Ό Club Admin Dashboard

image

πŸ“„ License

This project is licensed under the MIT License. See LICENSE for more info.

About

This project is still under development

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors