A Flask-based study companion application. StudyVerse helps university students manage their studies with AI assistance, Pomodoro timers, task management, and progress tracking.
- Authentication: Sign up and sign in with email
- Dashboard: Overview of study stats, proficiency, and quick actions
- Personal AI Agent: Chat with an AI study companion
- Group Chat: Collaborate with study groups
- Todos: Manage personal and group tasks
- Pomodoro Timer: Focus sessions with breaks
- Syllabus: Track course topics and proficiency
- Progress: View study statistics and achievements
- Settings: Manage profile and preferences
- Backend: Python Flask
- Frontend: HTML, CSS, JavaScript
- Database: SQLite (default, can be changed)
- Authentication: Flask-Login
- Install Python dependencies:
pip install -r requirements.txt- Run the application:
python app.py- Access the application:
- Open your browser and go to
http://localhost:5000 - Sign up for a new account or sign in
- Open your browser and go to
.
├── app.py # Main Flask application
├── requirements.txt # Python dependencies
├── templates/ # HTML templates
│ ├── layout.html # Base layout with sidebar
│ ├── auth.html # Authentication page
│ ├── dashboard.html # Dashboard page
│ ├── chat.html # Personal AI chat
│ ├── group_chat.html # Group chat
│ ├── todos.html # Todo management
│ ├── pomodoro.html # Pomodoro timer
│ ├── syllabus.html # Syllabus tracking
│ ├── progress.html # Progress statistics
│ └── settings.html # Settings page
├── static/
│ ├── css/
│ │ └── style.css # Main stylesheet
│ └── js/
│ ├── main.js # Common utilities
│ ├── auth.js # Authentication logic
│ ├── chat.js # Chat functionality
│ ├── todos.js # Todo management
│ ├── pomodoro.js # Timer functionality
│ ├── syllabus.js # Syllabus features
│ └── group_chat.js # Group chat features
└── StudyVerse.db # SQLite database (created automatically)
The application uses environment variables for configuration:
SECRET_KEY: Flask secret key (defaults to a placeholder - change in production)DATABASE_URL: Database connection string (defaults to SQLite)
To use a different database, set the DATABASE_URL environment variable:
export DATABASE_URL=postgresql://user:password@localhost/StudyVerse
python app.pyPOST /api/auth/signup- Create new accountPOST /api/auth/signin- Sign inPOST /api/auth/signout- Sign out
GET /api/todos- Get all todosPOST /api/todos- Create new todoPUT /api/todos/<id>- Update todoDELETE /api/todos/<id>- Delete todo
POST /api/chat- Send chat messageGET /api/chat/history- Get chat history
POST /api/pomodoro/sessions- Save Pomodoro session
GET /api/user/profile- Get user profilePUT /api/user/profile- Update user profile
The application runs in debug mode by default. For production:
- Set
FLASK_ENV=production - Use a production WSGI server (e.g., Gunicorn)
- Set a strong
SECRET_KEY - Use a production database (PostgreSQL recommended)
- The AI chat responses are currently simple placeholders. You can integrate with OpenAI, Anthropic, or other AI services by modifying the
/api/chatendpoint inapp.py. - Google OAuth sign-in is not yet implemented (placeholder in UI).
- PDF upload functionality is simulated (you can implement actual PDF processing).
This project is for educational purposes.