Empowering Students with Intelligence & Resources. A modern, AI-integrated platform for managing campus resources, routines, and student interactions for CPGS.
- 🔐 Robust Authentication: Secure login/signup system with role-based access (Student, Admin, Developer, CR, HOD).
- 🤖 AI Integration: Built-in Gemini AI assistant for answering queries and analyzing uploaded content.
- 📚 Resource Hub: Upload, browse, and manage study materials categorized by branch (CSE, ABM, BI).
- 📅 Routine Management: Dynamic class routine viewer and creator.
- 🎨 Modern UI/UX: Fully responsive design with Dark/Light mode toggle and glassmorphism aesthetics.
- 🛡️ Admin Dashboard: Dedicated panel for managing users and resources.
- Framework: Next.js 15 (App Router)
- Language: TypeScript
- Styling: Tailwind CSS
- Database: MongoDB (Mongoose ODM)
- Authentication: JWT & Bcrypt
- AI Model: Google Generative AI (Gemini)
Follow these steps to set up the project locally.
git clone https://github.com/your-username/cpgs-hub.git
cd cpgs-hub/hub101npm install
# or
yarn installCreate a .env.local file in the root directory (hub101/) and add the following variables:
# MongoDB Connection String
CONNECTIONURI=mongodb+srv://<username>:<password>@<cluster>.mongodb.net/?appName=<appname>
# Google Gemini API Key
GEMINI_KEY=your_gemini_api_key_here
# JWT Secret for Authentication
JWT_SECRET=your_secure_jwt_secretnpm run devOpen http://localhost:3000 with your browser to see the result.
hub101/
├── app/ # Application routes (Next.js App Router)
│ ├── api/ # API routes (Auth, Admin, Upload, Chat)
│ ├── admin/ # Admin dashboard pages
│ ├── (auth)/ # Auth pages (Login, Register)
│ ├── browse/ # Resource browsing
│ └── ...
├── components/ # Reusable UI components
├── lib/ # Utility functions (dbConnect, generic utils)
├── models/ # Mongoose database models (User, File, etc.)
├── context/ # React Context (AuthContext)
└── public/ # Static assets
Contributions are welcome! Please follow these steps:
- Fork the project.
- Create your feature branch (
git checkout -b feature/AmazingFeature). - Commit your changes (
git commit -m 'Add some AmazingFeature'). - Push to the branch (
git push origin feature/AmazingFeature). - Open a Pull Request.
Distributed under the MIT License. See LICENSE for more information.
Made with ❤️ by Sabyasachi Panda