SmartDay is a full-stack AI-powered web application designed to help university students manage academic workload, plan study schedules intelligently, and improve productivity using real-time data and generative AI.
It combines traditional task management with Google Gemini AI to generate personalized study plans and workload insights based on a studentβs deadlines, priorities, and estimated effort.
Built with Flask, MySQL, and Bootstrap, SmartDay transforms scattered academic tasks into a structured, AI-driven daily plan that helps students avoid procrastination, balance workload, and stay consistent.
- User registration and secure login authentication
- Session-based authentication using Flask
- Password hashing using Werkzeug security utilities
- Create, edit, and delete academic tasks
- Assign category, priority, deadline, and estimated hours
- Track task status (Pending, In Progress, Completed)
- Automatic overdue detection based on deadlines
- Task ownership validation for security
- Real-time task statistics (Total, Pending, Completed, Overdue)
- Completion Rate calculation
- Deadline Success Rate tracking
- Composite Productivity Score
- Animated visual progress indicators
- Generates personalized day-by-day study schedules
- Uses Google Gemini (
gemini-2.5-flash) for intelligent planning - Breaks large tasks into manageable study sessions
- Prioritizes tasks based on deadline and importance
- Automatically balances workload across days
- Analyzes student workload using AI
- Classifies workload as Light / Moderate / Heavy
- Identifies urgent and overdue tasks
- Provides actionable study recommendations
- Helps prevent academic burnout
- Deadline-aware task prioritization
- Estimated study hour integration
- Dynamic redistribution of workload
- AI-driven planning instead of manual scheduling
- Productivity scoring system
- Task completion tracking over time
- Workload visualization
- AI-generated academic performance insights
- Password hashing (no plaintext storage)
- SQL injection prevention using parameterized queries
- User-based data isolation
- Secure session handling using Flask secret key
- Flask (Python) β Core web framework for routing, session management, and backend logic
- MySQL β Relational database used for storing users, tasks, study plans, and workload reports
- mysql-connector-python β Python connector for secure database communication
- Google Gemini API (
gemini-2.5-flash) β Powers AI-generated study plans and workload analysis - google-genai SDK β Official Python SDK used to interact with Gemini models
- HTML5 β Structure of the web application
- CSS3 + Bootstrap 5.3 β Responsive and modern UI design
- Jinja2 Templates β Dynamic server-side rendering in Flask
- Werkzeug Security β Password hashing and verification
- Flask Sessions β User authentication and session management
- Environment Variables (.env) β Secure storage of API keys and database credentials
- Visual Studio Code β Primary development environment
- MySQL Workbench β Database design and management
- Git & GitHub β Version control and project hosting
- Render β Cloud deployment platform for hosting Flask web application
- Gunicorn β Production-grade WSGI server for running Flask app
- TiDB Cloud / MySQL Cloud Database β Cloud database hosting for production use
SmartDay follows a structured workflow that connects user input, database operations, and AI-driven processing to generate intelligent study plans and workload insights.
- User registers with name, email, and password
- Password is securely hashed using Werkzeug
- Credentials are stored in MySQL database
- During login, password is verified and a session is created
- Session maintains user state across the application
- User creates a task with:
- Title
- Category
- Priority
- Deadline
- Estimated hours
- Task is stored in MySQL under the logged-in user
- Tasks are retrieved and displayed in sorted order (by deadline)
- Users can update, delete, or mark tasks as completed
- Task status updates automatically reflect in dashboard analytics
- System fetches all user tasks from database
- Tasks are categorized into:
- Completed
- Pending
- Overdue
- Metrics are calculated:
- Completion Rate
- Deadline Success Rate
- Productivity Score
- Results are displayed using dashboard progress indicators
- User clicks βGenerate Study Planβ
- System collects all active (non-completed) tasks
- Task data is formatted into a structured AI prompt
- Prompt is sent to Google Gemini (gemini-2.5-flash)
- AI returns a structured day-by-day study schedule
- Plan is stored in MySQL (study_plans table)
- Plan is parsed and displayed in a readable format
- System gathers:
- All tasks
- Productivity statistics
- Completion metrics
- Data is sent to Gemini AI for analysis
- AI classifies workload as:
- Light
- Moderate
- Heavy
- AI returns:
- Workload status
- Productivity assessment
- Urgent tasks
- Recommendations
- Report is stored and displayed in dashboard
User β Flask Routes β MySQL Database β AI (Gemini API) β Processed Output β UI (Dashboard / Pages)
Follow these steps to run SmartDay locally on your system.
git clone https://github.com/anila-sara-john/SmartDay
cd SmartDaypython -m venv venvActivate the environment:
- Windows:
venv\Scripts\activate- Mac/Linux:
source venv/bin/activatepip install -r requirements.txtCreate a .env file in the root directory and add the following:
GEMINI_API_KEY=your_gemini_api_key
SECRET_KEY=your_flask_secret_key
DB_HOST=your_database_host
DB_PORT=4000
DB_USER=your_database_user
DB_PASSWORD=your_database_password
DB_NAME=smartday_db- Create a database named
smartday_db - Import database schema from
database/schema.sql - Run it in MySQL Workbench or TiDB SQL editor to create required tables.
- Ensure database credentials match
.envfile
python app.pyhttp://127.0.0.1:5000Your application should now be running successfully!
This project, SmartDay β AI-Powered Student Planner and Academic Productivity Assistant, was developed as a full-stack academic project to demonstrate the integration of web development, database management, and artificial intelligence.
- Google Gemini API (gemini-2.5-flash) β Used for generating AI-powered study plans and workload analysis
- Google GenAI SDK β Python SDK for interacting with Gemini models
- Flask β Backend web framework
- MySQL β Database management system
- HTML, CSS, Bootstrap β Frontend design
- Jinja2 β Template rendering engine
- Gunicorn β Production WSGI server
- Render β Cloud deployment platform
- Flask Documentation β https://flask.palletsprojects.com/
- MySQL Documentation β https://dev.mysql.com/doc/
- Google Gemini API Docs β https://ai.google.dev/
Special thanks to all open-source communities and tutorials that helped in understanding full-stack development, AI integration, and deployment workflows.