A modern, AI-powered doubt solving platform for NST students and mentors with real-time collaboration, media support, and gamification features.
- Anonymous Doubt Posting - Ask questions without revealing identity
- Media Support - Upload images and videos with doubts
- Real-time Answers - Get instant responses from mentors
- XP System - Earn points for asking questions and providing answers
- My Doubts Tracking - Keep track of all your posted questions
- Profile Management - Comprehensive profile with activity stats
- Expert Dashboard - Dedicated interface for mentors
- Doubt Management - View and answer pending doubts
- Media Support - Respond with images and videos
- Student Tracking - Monitor students helped
- XP Rewards - Earn points for providing solutions
- Mentor Directory - Public listing of available mentors
- Real-time Updates - Live notifications and updates
- Cloud Storage - Firebase integration for data persistence
- Responsive Design - Works on all devices
- Modern UI - Beautiful, intuitive interface
- Search & Filter - Find relevant doubts and answers
- Leaderboard - Gamified ranking system
- Frontend: HTML5, CSS3, JavaScript (ES6+)
- Styling: Custom CSS with modern gradients and animations
- Backend: Firebase (Firestore, Authentication)
- Storage: LocalStorage + Cloud sync
- Build Tool: Vite
- Deployment: Vercel-ready
- Node.js 16+
- Firebase project setup
- Modern web browser
-
Clone the repository
git clone <repository-url> cd nst-ask-platform
-
Install dependencies
npm install
-
Configure Firebase
- Create a Firebase project
- Enable Firestore and Authentication
- Update
firebaseConfiginscript.js
-
Start development server
npm run dev
-
Open in browser
- Navigate to
http://localhost:3000
- Navigate to
- Create a new Firebase project
- Enable Firestore Database
- Enable Authentication (Email/Password)
- Update the configuration in
script.js:
const firebaseConfig = {
apiKey: "your-api-key",
authDomain: "your-project.firebaseapp.com",
projectId: "your-project-id",
storageBucket: "your-project.appspot.com",
messagingSenderId: "your-sender-id",
appId: "your-app-id"
};Create a .env file for sensitive configuration:
VITE_FIREBASE_API_KEY=your-api-key
VITE_FIREBASE_AUTH_DOMAIN=your-project.firebaseapp.com
VITE_FIREBASE_PROJECT_ID=your-project-id
VITE_FIREBASE_STORAGE_BUCKET=your-project.appspot.com
VITE_FIREBASE_MESSAGING_SENDER_ID=your-sender-id
VITE_FIREBASE_APP_ID=your-app-id- Sign Up - Create account with NST email
- Ask Doubts - Post questions with optional media
- Get Answers - Receive responses from mentors
- Track Progress - Monitor XP and activity in profile
- Register - Sign up as mentor with expertise
- Answer Doubts - Help students with solutions
- Build Reputation - Earn XP and recognition
- Manage Profile - Update expertise and settings
- Login Page - Authentication with mentor directory
- Dashboard - Main interface for students
- Mentor Dashboard - Specialized interface for mentors
- Profile - User statistics and settings
- Doubt Cards - Display questions with media
- Answer Modals - Respond to doubts
- Media Upload - Image/video upload interface
- XP System - Gamification elements
- Navigation - Sidebar navigation
- Email Validation - NST email domain verification
- Anonymous Posting - Optional anonymity
- Data Encryption - Secure data transmission
- Input Validation - XSS and injection protection
{
name: string,
urn: string,
email: string,
mobile: string,
xp: number,
doubtsAsked: number,
answersGiven: number,
helpfulAnswers: number
}{
name: string,
email: string,
expertise: string,
experience: number,
xp: number,
solutionsGiven: number,
studentsHelped: number,
helpfulSolutions: number
}{
id: number,
title: string,
description: string,
category: string,
author: string,
media: array,
timestamp: string,
answers: number,
likes: number
}-
Connect to Vercel
npx vercel
-
Configure Environment Variables
- Add Firebase configuration
- Set production URLs
-
Deploy
vercel --prod
-
Build for production
npm run build
-
Deploy dist folder
- Upload to any static hosting service
- Configure Firebase for production
- Fork the repository
- Create feature branch (
git checkout -b feature/amazing-feature) - Commit changes (
git commit -m 'Add amazing feature') - Push to branch (
git push origin feature/amazing-feature) - Open Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
- NST (Noida School of Technology) for inspiration
- Firebase for backend services
- Vercel for deployment platform
- Open source community for tools and libraries
For support and questions:
- Email: [email protected]
- GitHub Issues: Create an issue
- Documentation: Wiki
Made with β€οΈ for NST Students and Mentors