A comprehensive study planning application with AI-powered scheduling and progress tracking.
- Calendar Interface: Interactive calendar for scheduling study sessions
- Task Management: Create, prioritize, and track study tasks
- Progress Analytics: Visual charts showing study progress and performance
- AI-Powered Scheduling: Machine learning model predicts optimal study durations
- Subject Difficulty Assessment: Automatic difficulty scoring for subjects
- Study Streak Tracking: Monitor and maintain study consistency
- Export Reports: Generate detailed study reports
- Frontend: React.js, React Big Calendar, D3.js, Tailwind CSS
- Backend: Flask API, PostgreSQL
- ML: Scikit-Learn sequential neural network
- Database: PostgreSQL with SQLAlchemy
SmartStudyPlanner/
├── frontend/ # React application
├── backend/ # Flask API server
├── ml_model/ # Machine learning models
├── README.md # This file
└── requirements.txt # Python dependencies
- Node.js (v16+)
- Python (v3.8+)
- PostgreSQL
- Git
-
Navigate to backend directory:
cd backend -
Create virtual environment:
python -m venv venv venv\Scripts\activate # Windows # source venv/bin/activate # macOS/Linux
-
Install dependencies:
pip install -r requirements.txt
-
Set up environment variables:
cp .env.example .env # Edit .env with your database credentials -
Initialize database:
flask db init flask db migrate flask db upgrade
-
Train ML model:
python train_model.py
-
Run the server:
flask run
-
Navigate to frontend directory:
cd frontend -
Install dependencies:
npm install
-
Start development server:
npm start
- Install PostgreSQL
- Create database:
smart_study_planner - Update connection string in
.env
POST /api/auth/login- User loginPOST /api/auth/register- User registration
GET /api/tasks- Get all tasksPOST /api/tasks- Create new taskPUT /api/tasks/{id}- Update taskDELETE /api/tasks/{id}- Delete task
GET /api/sessions- Get study sessionsPOST /api/sessions- Log study sessionGET /api/analytics/progress- Get progress analytics
POST /api/predict/duration- Predict optimal study durationPOST /api/predict/difficulty- Assess subject difficulty
# Backend tests
cd backend
pytest
# Frontend tests
cd frontend
npm test# Backend
cd backend
gunicorn app:app
# Frontend
cd frontend
npm run build- Fork the repository
- Create feature branch:
git checkout -b feature/new-feature - Commit changes:
git commit -am 'Add new feature' - Push to branch:
git push origin feature/new-feature - Submit pull request
MIT License