Skip to content

Repository files navigation

Vidya Setu - Student Portfolio & Academic Management Platform

Vidya Setu Logo

πŸ“‹ Overview

Vidya Setu is a comprehensive digital platform designed to empower students, faculty, and administrators in managing academic portfolios, achievements, and institutional accreditation processes. The platform serves as a bridge (ΰ€Έΰ₯‡ΰ€€ΰ₯) between students' accomplishments and institutional compliance requirements (NAAC, NIRF, NBA, etc.).

✨ Features

For Students

  • πŸ“š Digital Portfolio Management - Showcase academic achievements, certifications, and projects
  • πŸ† Competition & Achievement Tracking - Document participation in hackathons, contests, and awards
  • πŸ“„ Document Management - Upload and organize academic certificates and credentials
  • πŸ‘€ Profile Management - Maintain comprehensive student profiles with academic history
  • πŸ” Secure Authentication - JWT-based secure login system
  • πŸ€– AI-Powered Chatbot Assistant - Multilingual chatbot with intelligent responses, user-friendly options, and instant help

For Faculty

  • πŸ‘₯ Student Monitoring - Track and review student achievements and submissions
  • βœ… Document Verification - Review and approve student-uploaded certificates
  • πŸ“Š Analytics Dashboard - View departmental statistics and student performance metrics
  • πŸ” Search & Filter - Advanced search capabilities for student data
  • πŸ“‹ Student Data Export - Generate reports and export student information

For Administrators

  • πŸ“ˆ Compliance Reporting - Generate NAAC, NIRF, NBA, and other accreditation reports
  • πŸ‘¨β€πŸ’Ό User Management - Manage students, faculty, and admin accounts
  • πŸ“Š Advanced Analytics - Institutional-level dashboards and insights
  • βš™οΈ System Configuration - Configure platform settings and access controls
  • πŸ“„ Report Generation - Automated report creation for various compliance frameworks

πŸ› οΈ Tech Stack

Frontend

  • React 18.2 - Modern UI library
  • Vite 7.1 - Next-generation frontend tooling
  • TailwindCSS 4.1 - Utility-first CSS framework
  • React Router 7.8 - Client-side routing
  • Axios - HTTP client
  • Recharts - Data visualization
  • Lucide React - Modern icon library
  • React Icons - Comprehensive icon set
  • Botpress Chatbot - Integrated multilingual AI chatbot for user assistance

Backend

  • Node.js - Runtime environment
  • Express 5.1 - Web application framework
  • MongoDB - NoSQL database
  • Mongoose 8.18 - MongoDB object modeling
  • JWT (jsonwebtoken) - Authentication
  • bcrypt 6.0 - Password hashing
  • dotenv - Environment variable management
  • CORS - Cross-origin resource sharing

πŸ“¦ Installation

Prerequisites

  • Node.js (v18 or higher)
  • MongoDB (local installation or MongoDB Atlas account)
  • npm or yarn package manager

Clone the Repository

git clone https://github.com/N1KH1LT0X1N/ggw-vidyasetu.git
cd ggw-vidyasetu

Install Dependencies

# Install frontend dependencies
npm install

Environment Setup

Frontend Environment Variables

  1. Copy the environment template:
cp .env.example .env
  1. Edit .env and configure:
VITE_API_BASE_URL=http://localhost:5000

Backend Environment Variables

  1. Navigate to backend directory and copy template:
cd backend
cp .env.example .env
  1. Edit backend/.env with your configuration:
MONGODB_URI=your_mongodb_connection_string
JWT_SECRET=your_secure_jwt_secret_key
PORT=5000
NODE_ENV=development
ALLOWED_ORIGINS=http://localhost:5173,http://localhost:3001

Important:

  • Generate a strong JWT secret (minimum 32 characters)
  • Use MongoDB Atlas or local MongoDB instance
  • Never commit .env files to version control

πŸš€ Running the Application

Development Mode

Start Backend Server

# From the backend directory
cd backend
node server.js

Server will run on http://localhost:5000

Start Frontend Development Server

# From the root directory
npm run dev

Frontend will run on http://localhost:5173

Production Build

npm run build
npm run preview

πŸ“ Project Structure

ggw-vidyasetu/
β”œβ”€β”€ backend/
β”‚   β”œβ”€β”€ models/           # MongoDB schemas
β”‚   β”‚   β”œβ”€β”€ Student.js
β”‚   β”‚   β”œβ”€β”€ faculty.js
β”‚   β”‚   └── Admin.js
β”‚   β”œβ”€β”€ routes/           # API routes
β”‚   β”‚   β”œβ”€β”€ auth.js
β”‚   β”‚   └── facultyAuth.js
β”‚   β”œβ”€β”€ server.js         # Express server setup
β”‚   β”œβ”€β”€ seedData.js       # Database seeding script
β”‚   └── .env.example      # Environment template
β”œβ”€β”€ src/
β”‚   β”œβ”€β”€ components/       # Reusable React components
β”‚   β”œβ”€β”€ assets/           # Images and static files
β”‚   β”œβ”€β”€ styles/           # CSS stylesheets
β”‚   β”œβ”€β”€ data/             # Static data files
β”‚   β”œβ”€β”€ App.jsx           # Main app component
β”‚   └── main.jsx          # Entry point
β”œβ”€β”€ android/              # Android app configuration
β”œβ”€β”€ index.html            # HTML template
β”œβ”€β”€ vite.config.js        # Vite configuration
β”œβ”€β”€ package.json          # Dependencies
└── README.md             # This file

πŸ”‘ Default Credentials (Development)

After seeding the database, you can use these test credentials:

Sample Student Login

  • Student ID: 202400000001
  • Password: Password123!

Sample Faculty Login

  • Faculty ID: Check backend/seedData.js for current credentials
  • Password: Check backend/seedData.js for current credentials

⚠️ Warning: Change all default passwords in production!

πŸ—„οΈ Database Setup

Seeding Sample Data

cd backend
node seedData.js

This will populate your database with sample students, faculty, and admin accounts for testing.

πŸ” Security Features

  • JWT-based authentication with token expiration
  • Password hashing using bcrypt (10 salt rounds)
  • Protected API routes with middleware authentication
  • CORS configuration for allowed origins
  • Input validation for all user inputs
  • Secure password requirements
  • Git pre-commit hooks - Prevents accidental commit of .env files and sensitive credentials

πŸ›‘οΈ Git Security Hooks

The repository includes pre-commit hooks that automatically prevent you from committing sensitive information:

Setup the hooks (one-time):

# Windows PowerShell
.\setup-git-hooks.ps1

# Linux/macOS/Git Bash
./setup-git-hooks.sh

What's protected:

  • ❌ Blocks commits containing .env files
  • ❌ Blocks commits with MongoDB connection strings containing credentials
  • ⚠️ Warns about potential hardcoded passwords/secrets

Testing the hook:

git add backend/.env
git commit -m "test"
# Will block with an error message

See .git/hooks/README.md for more details.

πŸ€– AI Chatbot Assistant

The platform features an integrated multilingual AI-powered chatbot built with Botpress that provides:

  • 24/7 Availability - Instant assistance anytime users need help
  • Multilingual Support - Communicate in multiple Indian and international languages
  • Interactive Options - Easy-to-use menu-driven interface for common queries
  • Intelligent Responses - Context-aware answers to student, faculty, and admin questions
  • Guided Navigation - Help users find features and complete tasks efficiently
  • FAQ Integration - Quick answers to frequently asked questions about the platform

The chatbot assists with:

  • Platform navigation and feature discovery
  • Account setup and login issues
  • Document upload guidance
  • Report generation help
  • General platform queries
  • Technical support routing

πŸ“± Platform Access Roles

  1. Students - Access portfolio management and document upload
  2. Faculty - Review student submissions and generate reports
  3. Administrators - Full system access and user management

🀝 Contributing

Contributions are welcome! Please follow these steps:

  1. Fork the repository
  2. Create a feature branch (git checkout -b feature/AmazingFeature)
  3. Commit your changes (git commit -m 'Add some AmazingFeature')
  4. Push to the branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

πŸ“„ License

This project is licensed under the MIT License - see the LICENSE file for details.

πŸ‘₯ Team

Developed by: Jash Thakkar and Team
Organization: GGW (Guru Gobind Singh Polytechnic)
Project: Smart India Hackathon 2024

πŸ“§ Support

For issues, questions, or contributions:

πŸ™ Acknowledgments

  • Smart India Hackathon for the opportunity
  • All contributors and team members
  • Open-source community for the amazing tools and libraries

πŸ”— Links


Made with ❀️ for empowering education in India

About

No description, website, or topics provided.

Resources

Code of conduct

Contributing

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages