A comprehensive web application designed to help students manage their academic life efficiently. Built with modern web technologies, this platform offers attendance tracking, AI-powered quizzes, an intelligent assistant, and class management features.
- Attendance Tracker - Monitor and manage class attendance to ensure you never miss important sessions
- Brain Quiz - Test your knowledge with AI-generated quizzes tailored to your courses using Gemini AI
- AI Assistant - Get instant help with your coursework from our intelligent chatbot powered by Google's Gemini
- Classes Management - Organize your class schedule, assignments, and course materials in one place
- Frontend Framework: Next.js 15 (React)
- Styling: Tailwind CSS
- Database & Authentication: Firebase (Firestore + Auth)
- AI Integration: Google Gemini API
- Language: TypeScript
- Fonts: Geist Sans & Geist Mono
Before you begin, ensure you have the following installed:
- Node.js version 18.x or higher (Download here)
- npm (comes with Node.js)
- Git (Download here)
git clone <repository-url>
cd smart-college-assistantnpm installEach team member needs their own Firebase project:
- Go to Firebase Console
- Click "Add Project" or use an existing project
- Once created, click on the Web icon (</>) to add a web app
- Register your app with a nickname (e.g., "Smart College Assistant - Dev")
- Copy the Firebase configuration values (you'll need these in the next step)
- Enable Firestore Database:
- Go to "Firestore Database" in the left sidebar
- Click "Create Database"
- Start in test mode (for development)
- Enable Authentication:
- Go to "Authentication" in the left sidebar
- Click "Get Started"
- Enable your preferred sign-in methods (Email/Password recommended)
- Go to Google AI Studio
- Click "Create API Key"
- Copy your API key (keep it secure!)
Create a .env.local file in the root directory:
cp .env.local.example .env.localOr create it manually with the following content:
NEXT_PUBLIC_FIREBASE_API_KEY=your_firebase_api_key
NEXT_PUBLIC_FIREBASE_AUTH_DOMAIN=your_project_id.firebaseapp.com
NEXT_PUBLIC_FIREBASE_PROJECT_ID=your_project_id
NEXT_PUBLIC_FIREBASE_STORAGE_BUCKET=your_project_id.appspot.com
NEXT_PUBLIC_FIREBASE_MESSAGING_SENDER_ID=your_messaging_sender_id
NEXT_PUBLIC_FIREBASE_APP_ID=your_firebase_app_id
GEMINI_API_KEY=your_gemini_api_keyReplace all the your_* placeholders with your actual values from Firebase and Gemini.
Important: Never commit the .env.local file to Git! It's already in .gitignore.
npm run devOpen http://localhost:3000 in your browser to see the application.
The page will auto-reload when you make changes to the code.
smart-college-assistant/
├── app/ # Next.js app directory (pages & routes)
│ ├── attendance/ # Attendance tracking page
│ ├── quiz/ # Quiz page
│ ├── assistant/ # AI Assistant page
│ ├── classes/ # Classes management page
│ ├── layout.tsx # Root layout with navigation
│ ├── page.tsx # Landing page
│ └── globals.css # Global styles
├── components/ # Reusable React components
│ └── Navigation.tsx # Navigation header component
├── src/
│ ├── lib/ # Library configurations
│ │ ├── firebase.ts # Firebase initialization
│ │ └── gemini.ts # Gemini AI setup
│ └── types/ # TypeScript type definitions
├── public/ # Static assets
├── .env.local # Environment variables (not in Git)
└── package.json # Dependencies and scripts
npm run dev- Start development servernpm run build- Create production buildnpm start- Run production servernpm run lint- Run ESLint for code quality
main- Production-ready codedevelop- Development branchfeature/<feature-name>- Feature branchesfix/<bug-name>- Bug fix branches
-
Create a new branch from
develop:git checkout develop git pull origin develop git checkout -b feature/your-feature-name
-
Make your changes and commit:
git add . git commit -m "Add: your descriptive commit message"
-
Push your branch:
git push origin feature/your-feature-name
-
Create a Pull Request on GitHub
-
Wait for code review and approval
-
Merge into
develop
Add:- New featureUpdate:- Changes to existing featureFix:- Bug fixesRefactor:- Code refactoringDocs:- Documentation changesStyle:- Code style changes (formatting, etc.)
- Use TypeScript for type safety
- Follow the existing code structure
- Use meaningful variable and function names
- Add comments for complex logic
- Keep components small and focused
- Use Tailwind CSS for styling
Issue: Module not found errors
- Solution: Run
npm installto ensure all dependencies are installed
Issue: Firebase authentication not working
- Solution: Check that you've enabled the authentication method in Firebase Console
Issue: Gemini API errors
- Solution: Verify your API key is correct and has proper permissions
Issue: Environment variables not loading
- Solution: Restart the dev server after changing
.env.local
If you encounter any issues or have questions, please:
- Check the troubleshooting section above
- Search existing issues in the repository
- Create a new issue with detailed information
This project is created for educational purposes.
Built with ❤️ by the Smart College Assistant Team