A comprehensive web application for students to manage their courses, assignments, study sessions, and goals. Available as both a command-line interface and a modern web application.
- Course Management: Add, edit, and track courses with credits, target grades, and current grades
- Assignment Tracking: Manage assignments with due dates, weights, status, and grades
- Study Session Logging: Record study sessions with duration and notes
- Goal Management: Set and track progress toward academic and personal goals
- Dashboard: View overview statistics including GPA, study hours, and upcoming deadlines
- Progress Reports: Detailed progress tracking per course with completion statistics
- Install Python dependencies:
pip install -r requirements.txt
-
Start the Flask server:
python app.py
-
Open your browser and navigate to:
http://localhost:5000 -
Features available in the web interface:
- Dashboard with statistics and quick actions
- Forms for adding/editing courses, assignments, study sessions, and goals
- Progress reports and detailed views
- Responsive design that works on desktop and mobile
-
Run the CLI version:
python main.py
-
Follow the menu prompts to:
- Edit your student profile
- Manage courses
- Add and update assignments
- Log study sessions
- Set and track goals
- View dashboard and progress reports
All data is stored in planner_data.json in the project directory. Both the web application and CLI share the same data file, so you can use either interface interchangeably.
.
├── app.py # Flask web application
├── main.py # CLI application
├── requirements.txt # Python dependencies
├── planner_data.json # Data storage (auto-created)
├── templates/ # HTML templates
│ ├── base.html
│ ├── dashboard.html
│ ├── profile.html
│ ├── courses.html
│ ├── assignments.html
│ ├── study_sessions.html
│ ├── goals.html
│ ├── progress.html
│ └── ... (form templates)
└── static/
└── style.css # Stylesheet
/- Dashboard (home page)/profile- Edit student profile/courses- View all courses/courses/add- Add new course/courses/<id>/edit- Edit course/assignments- View all assignments/assignments/add- Add new assignment/assignments/<id>/edit- Edit assignment/study-sessions- View all study sessions/study-sessions/add- Log new study session/goals- View all goals/goals/add- Add new goal/goals/<id>/edit- Edit goal/progress- Detailed progress report
- Python 3 - Backend logic
- Flask - Web framework
- HTML/CSS - Frontend interface
- JSON - Data storage
- The web application runs in debug mode by default. For production, set
debug=Falseinapp.py - Change the
secret_keyinapp.pyfor production use - All dates should be entered in
YYYY-MM-DDformat - GPA calculation uses standard letter grade conversion (A=4.0, A-=3.7, etc.)
This project is open source and available for educational purposes.