Skip to content

Latest commit

 

History

History
211 lines (153 loc) · 6.88 KB

File metadata and controls

211 lines (153 loc) · 6.88 KB

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.