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

Watchers

Forks

Releases

No releases published

Packages

No packages published