Skip to content

Lokesh7025/AUconnect

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

13 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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)

  1. 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

Create .env file (see below)

npm run dev Server runs on Port 5000

  1. Frontend Setup (React) Bash

Open a new terminal

cd client npm install npm run dev Client runs on Port 5173

  1. ML Service Setup (Python) Bash

Open a new terminal

cd ml_service

Create virtual env (optional but recommended)

python -m venv venv

Windows: venv\Scripts\activate

Mac/Linux: source venv/bin/activate

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 (%).

About

MERN testing

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors