A comprehensive web application designed to help students manage their studies effectively, track progress, and improve productivity.
Features β’ Installation β’ Usage β’ Tech Stack β’ Contributing
- Overview
- Features
- Installation
- Configuration
- Usage
- Tech Stack
- Project Structure
- API Documentation
- Security
- Contributing
- Contact
- Acknowledgments
- Roadmap
Student Study Planner is a full-stack web application that provides students with a centralized platform to organize their academic life. From task management and study timers to AI-powered assistance and collaborative study rooms, this application offers everything a student needs to succeed academically.
- All-in-One Solution: Combines calendar, notes, flashcards, and more in one place
- AI-Powered: Get instant help with your studies using integrated AI assistance
- Collaborative Learning: Create or join study rooms with peers
- Progress Tracking: Visualize your productivity and academic progress
- Free & Open Source: Fully customizable and free to use
- π Interactive calendar with task visualization
- π¨ Color-coded priority levels
- π Daily, weekly, and monthly views
- β Task completion tracking
- π Deadline notifications
- β° Pomodoro-style focus sessions
- β Configurable break intervals
- π Session history tracking
- π Study time analytics
- π Visual progress charts (Chart.js)
- β Task completion rates
- β²οΈ Study time analytics
- π₯ Productivity streak tracking
- π Subject performance analysis
- π― Custom goal setting
- βοΈ Rich text editing
- ποΈ Organized note categorization
- π Quick search functionality
- πΎ Auto-save feature
- π Module-based calculation
- βοΈ Assessment weight management
- π Grade tracking and projections
- π Multiple assessment types (tests, quizzes, assignments, exams)
- π Custom deck creation
- π§ Spaced repetition algorithm (SM-2)
- π Study progress tracking
- π₯ Import/export functionality
- π·οΈ Tag-based organization
- π¬ Powered by Google Gemini AI
- π Study-related queries and assistance
- πΎ Chat history saving
- π Educational content support
- π YouTube integration
- πΊ Custom playlist management
- π Video bookmarking
- π Educational content search
- π Create and join study rooms
- π¬ Real-time chat functionality
- π¨ Shared whiteboard (Fabric.js)
- π Document sharing and co-editing
- π Shared calendar for group planning
- π Public and private room options
- π JWT-based authentication
- π Bcrypt password hashing
- π€ User-specific data isolation
- π‘οΈ Protected API endpoints
Before you begin, ensure you have the following installed:
- Node.js (v12.0.0 or higher)
- npm or yarn
- MongoDB (local or Atlas account)
- Google Gemini API Key
- YouTube Data API Key
git clone https://github.com/Bheki0987/student-study-planner.git
cd student-study-plannernpm installcd study-planner-backend
npm installCreate a .env file in the study-planner-backend directory:
# MongoDB Configuration
MONGODB_URI=mongodb+srv://username:password@cluster.mongodb.net/studyplanner
# JWT Secret (use a strong random string)
JWT_SECRET=your_super_secret_jwt_key_here
# Google Gemini AI API Key
GEMINI_API_KEY=your_gemini_api_key_here
# YouTube Data API Key
YOUTUBE_API_KEY=your_youtube_api_key_herecd study-planner-backend
node server.jsThe backend server will run on http://localhost:3001
For development, use a local server:
# Using Python
python -m http.server 8000
# Using Node.js http-server
npx http-server
# Or simply open index.html in your browser- Visit Google AI Studio
- Sign in with your Google account
- Create a new API key
- Copy the key to your
.envfile
- Go to Google Cloud Console
- Create a new project or select existing
- Enable YouTube Data API v3
- Create credentials (API Key)
- Copy the key to your
.envfile
- Create account at MongoDB Atlas
- Create a new cluster
- Add database user
- Whitelist your IP address
- Get connection string
- Update
MONGODB_URIin.env
-
Register an Account
- Open the application
- Click "Register" tab
- Enter username and password
- Click "Register"
-
Login
- Enter your credentials
- Click "Login"
-
Navigate Features
- Use the sidebar menu to access different features
- Click "+ Add Task" to create new tasks
- Explore each section for full functionality
- Go to Study Timer
- Set focus time and break time
- Click Start
- Study during focus time
- Take breaks as scheduled
- Navigate to Flashcards
- Click Create Deck
- Add cards with questions and answers
- Click Study to begin learning
- Rate your recall (Again, Hard, Good, Easy)
- Go to Collaboration Hub
- Click Join Room
- Enter room code shared by a friend
- Start collaborating!
- HTML5 - Structure
- CSS3 - Styling with custom dark theme
- JavaScript (ES6+) - Application logic
- Chart.js - Data visualization
- Fabric.js - Whiteboard functionality
- SortableJS - Drag-and-drop
- Node.js - Runtime environment
- Express.js - Web framework
- MongoDB - Database
- Mongoose - ODM
- JWT - Token-based authentication
- bcryptjs - Password hashing
- CORS - Cross-origin resource sharing
- Google Gemini AI - AI assistance
- YouTube Data API v3 - Video learning
student-study-planner/
βββ index.html # Main HTML file
βββ styles.css # Application styles
βββ script.js # Main JavaScript logic
βββ theme-toggle.js # Theme switching functionality
βββ quick-fix.js # Collaboration hub fixes
βββ package.json # Frontend dependencies
βββ LICENSE # MIT License
βββ README.md # This file
β
βββ study-planner-backend/
βββ server.js # Express server
βββ package.json # Backend dependencies
βββ .env # Environment variables (create this)
β
βββ models/
βββ User.js # User schema
POST /register
Content-Type: application/json
{
"username": "string",
"password": "string"
}Response:
{
"message": "User registered successfully"
}POST /login
Content-Type: application/json
{
"username": "string",
"password": "string"
}Response:
{
"token": "jwt_token_here"
}POST /ask
Authorization: Bearer {token}
Content-Type: application/json
{
"message": "What is photosynthesis?"
}Response:
{
"response": "AI generated response..."
}GET /api/youtube/search?q={query}
Authorization: Bearer {token}Response:
{
"items": [
{
"id": { "videoId": "string" },
"snippet": {
"title": "string",
"description": "string",
"thumbnails": { ... }
}
}
]
}- β JWT Authentication - Secure token-based auth
- β Password Hashing - Bcrypt with salt rounds
- β CORS Protection - Configured origins
- β Input Validation - Server-side validation
- β Environment Variables - Sensitive data protection
- β HTTPS Ready - SSL/TLS support
- Never commit
.envfiles - Use strong JWT secrets (min 32 characters)
- Regularly update dependencies
- Enable MongoDB authentication
- Use HTTPS in production
I welcome contributions! Here's how you can help:
- Fork the repository
- Create a 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
- Use ES6+ JavaScript features
- Follow camelCase naming convention
- Add comments for complex logic
- Write meaningful commit messages
- Check existing issues
- Create detailed bug report
- Include steps to reproduce
- Add screenshots if applicable
Bheki Mogola
- πΌ LinkedIn: Bheki Mogola
- π§ Email: bpmogola@gmail.com
- π GitHub: @Bheki0987
- Chart.js - Beautiful charts
- Fabric.js - Canvas library for whiteboard
- Google Gemini - AI assistance
- MongoDB - Database solution
- YouTube API - Video integration
- All contributors - Thank you!
- Task management
- Study timer
- Flashcards with spaced repetition
- AI assistant
- Collaboration hub
- Video learning
- Mobile app (React Native)
- Offline mode
- Cloud sync across devices
- Advanced analytics
- Calendar integrations (Google Calendar)
- Notification system
- Dark/Light theme toggle
- Multi-language support
- Voice commands
- Export data (PDF, CSV)
β Star this repo if you find it helpful!