StudyAssistant - AI-Powered Study Management Platform
A comprehensive web application designed to help students manage their study sessions, track progress, and get AI-powered assistance for effective learning.
✨ Features
📊 Dashboard & Analytics
- Real-time Statistics: View tasks completed, total study time, and current streak
- Study Streak Tracking: Monitor consecutive study days and longest streak
- Points System: Earn points for completed tasks and study sessions
- Progress Visualization: Clean, modern interface showing your study progress
- Recent Activity: Track your latest study sessions and task completions
⏱️ Study Timer
- Pomodoro Technique: 25-minute focused study sessions with 5-minute breaks
- Subject Tracking: Organize study time by different subjects
- Real-time Updates: Live timer with pause/resume functionality
- Study Time by Subject: Visual breakdown of time spent on each subject
📝 Task Management
- Create & Organize: Add tasks with titles, descriptions, and due dates
- Priority Levels: Mark tasks as high, medium, or low priority
- Status Tracking: Mark tasks as pending, in progress, or completed
- Points Rewards: Earn points for completing tasks
🤖 AI Study Assistant
- Intelligent Chatbot: Powered by Google Gemini AI
- Personalized Help: Get study tips, subject explanations, and motivation
- Quick Replies: Pre-built responses for common study questions
- Expandable Interface: Full-screen chat mode for detailed conversations
- Real-time Responses: Instant AI assistance for your study needs
🔐 User Authentication
- Secure Login: Email/password authentication with Firebase
- User Profiles: Personalized experience with saved data
- Data Persistence: All progress saved to cloud database
- Session Management: Automatic login state management
🛠️ Tech Stack
Frontend
- React 18: Modern UI framework with hooks
- Vite: Fast build tool and development server
- Tailwind CSS: Utility-first CSS framework for styling
- React Router: Client-side routing and navigation
Backend & Database
- Firebase Authentication: Secure user authentication
- Firestore: NoSQL cloud database for data persistence
- Real-time Listeners: Live data synchronization across devices
AI Integration
- Google Gemini AI: Advanced AI model for study assistance
- Custom Prompts: Tailored responses for educational content
- Error Handling: Graceful fallbacks when AI is unavailable
Development Tools
- ESLint: Code quality and consistency
- PostCSS: CSS processing and optimization
- Git: Version control and collaboration
🚀 Getting Started
Prerequisites
- Node.js (v16 or higher)
- npm or yarn package manager
- Firebase project setup
- Google Gemini AI API key
Installation
Clone the repository
git clone https://github.com/yourusername/StudyAssistant.git cd StudyAssistantInstall dependencies
npm installEnvironment Setup Create a
.envfile in the root directory:VITE_FIREBASE_API_KEY=your_firebase_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 VITE_GEMINI_API_KEY=your_gemini_api_keyFirebase Configuration
- Create a Firebase project
- Enable Authentication with Email/Password
- Create a Firestore database
- Set up security rules for your use case
Add your Firebase config to environment variables
Gemini AI Setup
- Get API key from Google AI Studio
- Add to environment variables
- Configure service for optimal responses
📁 Project Structure
StudyAssistant/
├── src/
│ ├── components/ # React components
│ │ ├── Dashboard.jsx # Main dashboard
│ │ ├── StudyTimer.jsx # Timer functionality
│ │ ├── TaskManager.jsx # Task management
│ │ ├── Chatbot.jsx # AI assistant
│ │ ├── Navigation.jsx # Navigation bar
│ │ └── Profile.jsx # User profile
│ ├── contexts/ # React contexts
│ │ └── AuthContext.jsx # Authentication context
│ ├── config/ # Configuration files
│ │ └── firebase.js # Firebase setup
│ ├── services/ # External services
│ │ └── geminiService.js # AI service integration
│ └── assets/ # Static assets
├── public/ # Public assets
├── dist/ # Build output
└── docs/ # Documentation
🔧 Configuration
Firebase Setup
- Create a new Firebase project
- Enable Authentication with Email/Password
- Create a Firestore database
- Set up security rules for your use case
- Add your Firebase config to environment variables
Gemini AI Setup
- Get API key from Google AI Studio
- Add to environment variables
- Configure service for optimal responses
📊 Data Models
User Profile
{
uid: string,
email: string,
displayName: string,
points: number,
totalStudyTime: number,
sessions: number,
streakData: {
currentStreak: number,
longestStreak: number,
lastStudyDate: string
},
subjectStudyTime: object,
createdAt: timestamp
}
Tasks
{
id: string,
userId: string,
title: string,
description: string,
priority: 'high' | 'medium' | 'low',
status: 'pending' | 'in-progress' | 'completed',
dueDate: timestamp,
points: number,
createdAt: timestamp
}
🎯 Key Features Explained
Study Streak System
- Tracks consecutive days of study activity
- Updates automatically when timer is used
- Persists across sessions and devices
- Shows current focused studying streaks
Points System
- Earn points for completing tasks
- Points persist across sessions
- Visual feedback for achievements
- Motivates consistent study habits
AI Integration
- Context-aware responses
- Study-specific guidance
- Fallback responses when AI is unavailable
- Quick reply system for common questions
🤝 Contributing
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
🙏 Acknowledgments
- Google Gemini AI for intelligent study assistance
- Firebase for robust backend services
- React Team for the amazing framework
- Tailwind CSS for beautiful styling utilities
📞 Support
For support, create an issue in this repository.
Built with ❤️ for students everywhere
Built With
- firebase
- gemini
- javascript
- react
- tailwind
- vite
Log in or sign up for Devpost to join the conversation.