Campus Connect Documentation
Course: CSC 468 – Cloud Computing
Institution: West Chester University
Professor: Dr. Ngo
Semester: Spring 2025
Members (Alphabetical Order)
-
Perez Abhuilmen
-
Alex Cooper
-
Tyler Geiger
-
Kadin Matotek
Repositories
Project Demo

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
/channelsnamespace - EventEmitter-driven real-time broadcasting
- UI listens to
messageReceivedevents - 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.pyconfiguration 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.