Experience Data at Fingertips 📊
An AI-powered query system designed exclusively for CSM students to access instant insights and answers about academic information.
- ✨ Features
- 🏛️ Architecture
- 🛠️ Installation
- ⚙️ Configuration
- 🚀 Usage
- 📁 Project Structure
- 🔧 API Endpoints
- 🎨 UI/UX
- 🧪 Testing
- 🤝 Contributing
- 📜 License
- 👨💻 Author
- NVIDIA NIM Integration: Leverages cutting-edge NVIDIA AI models for natural language understanding
- RAG Architecture: Retrieval-Augmented Generation for accurate, context-aware responses
- Smart Document Processing: Automatic parsing and indexing of academic documents
- 📚 Current Syllabus: Instant access to CSE 3-2 semester curriculum
- 👨🏫 Faculty Information: Faculty schedules and timetable details
- 📅 Academic Calendar: Semester dates and important deadlines
- 📊 Student Data: Marks, performance analytics, and student details
- 🎯 Project Information: 3-2 project guidelines, timelines, and requirements
- Email-Based Registration: Secure signup with OTP verification
- College Email Restriction: Limited to @vvit.net domain for exclusivity
- Session Management: Secure user sessions with MongoDB storage
- Query Limits: Fair usage policy with daily query restrictions
- Responsive Design: Optimized for desktop, tablet, and mobile devices
- Dark/Light Mode: Seamless theme switching with user preference persistence
- Glassmorphism UI: Modern, elegant interface with backdrop blur effects
- Real-time Feedback: Loading states, progress indicators, and toast notifications
- Markdown Support: Rich text rendering for formatted responses
- Vector Search: Qdrant-powered semantic search for document retrieval
- Chat History: Track and review previous queries
- Error Handling: Comprehensive error management with user-friendly messages
- Performance Monitoring: Query count tracking and usage analytics
graph TD
A[User Interface] --> B[Flask Web Server]
B --> C[Authentication System]
B --> D[RAG Pipeline]
C --> E[MongoDB]
C --> F[Email Service]
D --> G[Document Loader]
D --> H[Text Splitter]
D --> I[NVIDIA Embeddings]
D --> J[Qdrant Vector Store]
D --> K[NVIDIA LLM]
G --> L[Source Documents]
J --> M[Vector Database]
style A fill:#e1f5fe
style B fill:#f3e5f5
style D fill:#e8f5e8
style E fill:#fff3e0
style J fill:#fce4ec
- 🐍 Python 3.8+: Core programming language
- 🌶️ Flask: Lightweight web framework
- 🗄️ MongoDB: NoSQL database for user management
- 🔍 Qdrant: Vector database for semantic search
- 📧 SMTP: Email service for notifications
- 🚀 NVIDIA NIM: AI model serving platform
- 🦜 LangChain: LLM application framework
- 📄 LlamaIndex: Document indexing and retrieval
- 🔢 Vector Embeddings: Semantic text representation
- 📱 HTML5/CSS3: Modern web standards
- ⚡ JavaScript: Interactive functionality
- 🎨 Custom CSS: Responsive design system
- 📝 Markdown: Rich text rendering
- Python 3.8 or higher
- MongoDB instance
- NVIDIA API access
- Qdrant Cloud account (or local instance)
- SMTP email service
git clone https://github.com/Epik-Whale463/College_Query_System.git
cd College_Query_Systempython -m venv venv
# On Windows
venv\Scripts\activate
# On macOS/Linux
source venv/bin/activatepip install -r requirements.txtCreate a .env file in the root directory:
# MongoDB Configuration
MONGODB_URI=mongodb://localhost:27017/
MONGODB_DATABASE=csm_query_system
# NVIDIA API
NVIDIA_API_KEY=your_nvidia_api_key_here
# Qdrant Configuration
QDRANT_URL=https://your-qdrant-cluster.qdrant.io:6333
QDRANT_API_KEY=your_qdrant_api_key_here
# Email Configuration
SMTP_SERVER=smtp.gmail.com
SMTP_PORT=587
SMTP_EMAIL=your_email@gmail.com
SMTP_PASSWORD=your_app_password
# Flask Configuration
FLASK_SECRET_KEY=your_secret_key_here
FLASK_ENV=developmentpython -c "from app import initialize_rag; initialize_rag()"python app.pyThe application will be available at http://localhost:5000
Place your academic documents in the source_documents/ directory:
about_vvit.txt- College informationcur_syllabus.txt- Current syllabusfaculty_schedule.txt- Faculty timetablesproject_details.txt- Project informationsemester_calender.txt- Academic calendarstudent_marks.txt- Student performance datastudents_details.txt- Student information
- Query Limits: Modify
MAX_QUERIES_PER_DAYinapp.py - UI Theme: Customize CSS variables in
static/style.css - Email Templates: Edit templates in
python_modules/generate_send_mail.py
- Visit the registration page
- Enter your college email (@vvit.net)
- Verify your email with the OTP sent
- Complete registration process
- Login to your account
- Type your question in natural language
- Get instant AI-powered responses with relevant information
- Use demo topics for quick queries
- "What is the syllabus for Machine Learning?"
- "When is the next semester exam?"
- "Show me faculty schedule for CSE department"
- "What are the project submission deadlines?"
College_Query_System/
├── 📁 source_documents/ # Academic documents
│ ├── about_vvit.txt
│ ├── cur_syllabus.txt
│ ├── faculty_schedule.txt
│ ├── project_details.txt
│ ├── semester_calender.txt
│ ├── student_marks.txt
│ └── students_details.txt
├── 📁 python_modules/ # Core Python modules
│ ├── add_user.py # User management
│ ├── generate_send_mail.py # Email services
│ ├── rag_functions.py # RAG pipeline
│ └── users.txt # User data
├── 📁 static/ # Static assets
│ ├── style.css # Main stylesheet
│ └── favicon.ico # Site icon
├── 📁 templates/ # HTML templates
│ ├── home.html # Landing page
│ ├── index.html # Main query interface
│ ├── login.html # Login page
│ ├── register.html # Registration page
│ ├── verify_otp.html # OTP verification
│ ├── 404.html # Error pages
│ └── 500.html
├── 📄 app.py # Main Flask application
├── 📄 requirements.txt # Python dependencies
├── 📄 Dockerfile # Docker configuration
├── 📄 .gitignore # Git ignore rules
└── 📄 README.md # This file
| Endpoint | Method | Description | Authentication |
|---|---|---|---|
/ |
GET | Home page | ❌ |
/register |
GET/POST | User registration | ❌ |
/verify-otp |
GET/POST | OTP verification | ❌ |
/login |
GET/POST | User login | ❌ |
/logout |
GET | User logout | ✅ |
/dashboard |
GET | Main query interface | ✅ |
/query |
POST | Process user queries | ✅ |
/query-count |
GET | Get user query statistics | ✅ |
- 🎨 Color Palette: Modern blue gradient theme
- 📱 Responsive Design: Mobile-first approach
- ✨ Animations: Smooth transitions and micro-interactions
- 🌓 Theme Support: Dark and light mode toggle
- ♿ Accessibility: WCAG compliant design
- Glassmorphism Cards: Modern translucent design
- Interactive Elements: Hover effects and feedback
- Loading States: Progress indicators and spinners
- Toast Notifications: User feedback system
- Markdown Rendering: Rich text support
# Test user registration
curl -X POST http://localhost:5000/register \
-H "Content-Type: application/json" \
-d '{"email":"test@vvit.net","password":"password123"}'
# Test query endpoint
curl -X POST http://localhost:5000/query \
-H "Content-Type: application/json" \
-d '{"query":"What is the current syllabus?"}'- Test query processing performance
- Verify concurrent user handling
- Monitor database response times
We welcome contributions to improve the CSM Query System! Here's how you can help:
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Make your changes
- Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
- Follow Python PEP 8 style guidelines
- Add comments for complex functionality
- Update documentation for new features
- Test your changes thoroughly
- 🐛 Bug Reports: Use the bug report template
- 💡 Feature Requests: Describe the proposed functionality
- 📖 Documentation: Help improve our docs
This project is licensed under the MIT License - see the LICENSE file for details.
Rama Charan
- 🎓 Affiliation: CSM Department, VVIT
- 📧 Email: your-email@vvit.net
- 🔗 GitHub: @Epik-Whale463
- 🚀 Status: Active Development
- 📅 Created: January 2025
- 🔄 Last Updated: June 2025
- 👥 Contributors: 1
- 🌟 Stars: Be the first!
- 🍴 Forks: 0
- Multi-language Support: Add regional language support
- Voice Queries: Voice-to-text query input
- Advanced Analytics: Detailed usage analytics dashboard
- Mobile App: Native mobile application
- API Integration: RESTful API for third-party integration
- Real-time Chat: Live chat support system
- Document Upload: User document upload functionality
- Export Features: Export responses to PDF/Word
This README was last updated on June 19, 2025