Skip to content

Campus Connect Documentation

Course: CSC 468 – Cloud Computing

Institution: West Chester University

Professor: Dr. Ngo

Semester: Spring 2025


Members (Alphabetical Order)


Repositories

  • Production repository: GitHub
  • Testing / Development GitHub

Project Demo

Dark Mode Landing Page


Vision

Our vision is to create an application tailored for university students that enables them to:

  • Connect with peers on campus
  • Collaborate on class projects
  • Study and chat together in real time

Campus Connect offers a clean, minimal interface inspired by platforms like Discord, but focused specifically on academic connections and collaboration.


Overview

Campus Connect is a full-stack, real-time chat platform built to enhance campus communication and productivity. Our system is designed to offer:

  • Private messaging and group chats
  • Friend system with request handling
  • Secure session management with Redis
  • WebSocket-powered live messaging
  • Modular architecture with full CI/CD pipeline

Technology Stack

  • Backend: NestJS, TypeScript, MongoDB (Mongoose), Redis, Express Sessions
  • Frontend: ReactJS (served statically via Nginx)
  • Real-time: Socket.IO for live messaging
  • Security: AES-256-CBC encrypted sessions, AuthGuard protection, bcrypt password hashing
  • CI/CD: GitHub webhook → CloudLab Portal API → Skaffold → Helm → Kubernetes (Minikube)
  • TODO: Secrets Management:: Using Helm or Github Secrets

Features & TODO List

1. Authentication & Authorization

  • User registration and login endpoints
  • Session management with encrypted Redis store
  • AuthGuard for protected routes
  • Password hashing and verification
  • (Idea?) Email verification and password reset support

2. Friend System

  • Friend request model with statuses (pending, accepted, declined)
  • Extended user schema for friend tracking
  • API to send/accept/decline friend requests
  • Endpoint to fetch confirmed friends list
  • Blocklist handling in schema
  • Basic UI to manage friend requests
  • Real-time friend request notifications
  • Notifications rendered on frontend

3. Direct Messaging

  • Create & retrieve DM channel between users
  • Design message schema (content, sender, timestamp)
  • WebSocket event on message send
  • Load & persist message history
  • Input box and infinite scroll UI

4. Live Messaging (Socket.IO)

  • Gateway for /channels namespace
  • EventEmitter-driven real-time broadcasting
  • UI listens to messageReceived events
  • Automatically join/leave channel rooms via WebSocket events
  • Sync unread message indicators

5. University Group Chat

  • Group channel model (reusing base channel schema)
  • Add group metadata (title, description, creator)
  • Join/leave endpoints for university-based channels
  • Manage group participants
  • Extend live messaging to group channels

6. Classroom & Subgroups

  • Define classroom group and nested subgroup schema
  • Support roles: student, instructor, TA
  • Channel-specific permissions for moderation
  • Role-based message visibility and muting
  • Admin UI to manage members and roles

7. Secrets & CI/CD

  • Helm values.yaml for managing encryption key, Redis URI, session secret
  • Skaffold handles builds for frontend/backend separately
  • GitHub webhook → shell script triggers Skaffold deploy
  • CloudLab profiles.py configuration triggers Minikube pod rollout
  • Add secure secret management using github secrets or helm_secrets
  • Monitor builds and auto-fail bad deploys

Summary

Campus Connect is not just a messaging platform — it's a collaborative academic tool designed for students, by students. With full-stack ownership, real-time architecture, and secure deployment, it offers a scalable foundation for academic communities and class groups to communicate, share, and succeed.