AU Connect 🎓 A Unified Campus Portal for Anna University Students & Faculty.
AU Connect is a full-stack platform designed to bridge the gap between students and faculty. It facilitates course management, campus updates, and peer networking using an AI-powered recommendation engine to connect students based on shared academic interests and technical skills.
📑 Table of Contents Features
Tech Stack
System Architecture
Getting Started
Environment Variables
The ML Recommendation Engine
Screenshots
🚀 Features 👨🎓 For Students Dual Authentication: Secure login/register with role-based access.
Course Channels: View course materials, assignments, and exam schedules posted by faculty.
Skill Swap & Projects: Find study partners or co-founders for projects.
AI Recommendations: Get matched with peers who have similar interests (e.g., F1, Chess) and tech stacks (e.g., React, Python) using a TF-IDF ML algorithm.
Profile Management: Tag-based input system to update academic interests and skills.
👩🏫 For Faculty Course Management: Create and delete courses dynamically.
Class Stream: Post announcements, assignments, and exams with due dates.
Department-Specific: Faculty content is tailored to their specific department and year.
🛠 Tech Stack Frontend React.js (Vite): Fast, component-based UI.
Tailwind CSS: Modern utility-first styling.
Lucide React: Beautiful, consistent icons.
Axios: API requests.
React Router DOM: Client-side routing.
Backend (Main Service) Node.js & Express: RESTful API server.
MongoDB & Mongoose: NoSQL database and schema modeling.
JWT (JSON Web Tokens): Secure authentication.
Bcrypt.js: Password hashing.
Backend (Microservice) Python (Flask): Lightweight web server for ML tasks.
Pandas: Data manipulation.
Scikit-Learn: Machine Learning algorithms (TF-IDF Vectorization, Cosine Similarity).
🏗 System Architecture The application uses a Microservice-lite architecture:
Client (React) sends requests to the Node.js Server.
Node.js Server handles Auth, Database (CRUD), and business logic.
When a student requests "Recommendations", Node.js fetches user data from MongoDB and forwards it to the Python Flask Service.
Python Service processes the text data using NLP techniques and returns similarity scores back to Node.js -> Client.
💻 Getting Started Prerequisites Node.js (v16+)
Python (3.8+)
MongoDB (Local or Atlas)
- Clone the Repository Bash
git clone https://github.com/yourusername/au-connect.git cd au-connect 2. Backend Setup (Node.js) Bash
cd server npm install
npm run dev Server runs on Port 5000
- Frontend Setup (React) Bash
cd client npm install npm run dev Client runs on Port 5173
- ML Service Setup (Python) Bash
cd ml_service
python -m venv venv
pip install flask flask-cors pandas scikit-learn python app.py ML Service runs on Port 5001
🔐 Environment Variables Create a .env file in the server folder:
Code snippet
PORT=5000 MONGO_URI=your_mongodb_connection_string JWT_SECRET=your_super_secret_key NODE_ENV=development 🧠 The ML Recommendation Engine The "Connect" feature isn't just a database query. It uses Content-Based Filtering.
Data Ingestion: Takes a user's Interests (e.g., "Web Dev", "F1") and ProjectTags (e.g., "React", "Python").
Vectorization: Uses TF-IDF (Term Frequency-Inverse Document Frequency) to convert these text tags into numerical vectors. This ensures that unique/rare interests carry more weight than generic ones.
Similarity: Calculates the Cosine Similarity between the current user's vector and every other student's vector.
Output: Returns the top 5 students with the highest similarity score (%).