Skip to content

Commit dea4d7d

Browse files
Merge pull request #3 from Programming-The-Next-Step-2026/week-3
Week 3
2 parents 3a8f523 + 2fbbf3f commit dea4d7d

17 files changed

Lines changed: 2173 additions & 381 deletions

.coverage

0 Bytes
Binary file not shown.
Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
name: Python tests
2+
3+
on:
4+
push:
5+
branches: [main, master, week-3]
6+
pull_request:
7+
8+
jobs:
9+
test:
10+
runs-on: ubuntu-latest
11+
12+
steps:
13+
- uses: actions/checkout@v6
14+
- uses: actions/setup-python@v6
15+
with:
16+
python-version: "3.12"
17+
18+
- name: Install package and test tools
19+
run: |
20+
python -m pip install --upgrade pip
21+
python -m pip install -e . pytest
22+
23+
- name: Run unit tests
24+
run: pytest
25+

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,3 +4,4 @@ __pycache__/
44
.DS_Store
55
credentials.json
66
token.json
7+
.ipynb_checkpoints

README.md

Lines changed: 16 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -6,11 +6,12 @@ A smart study planner that builds your revision schedule automatically based on
66
- Input your exams with dates and estimated study hours
77
- Set daily available study hours and commitments
88
- Import commitments automatically from Google Calendar
9-
- Edit/ commitments inside the planner
10-
- Get an automatically generated color coded revision schedule
9+
- Edit commitments inside the planner
10+
- Get an automatically generated color coded study schedule
1111
- Receive warnings when there is not enough time for an exam
12+
- Export study schedule to Google Calendar
1213
- Get personalised study tips based on psychology research
13-
- Optional spaced repetition schedule based on the Ebbinghaus forgetting curve
14+
- Optional: spaced repetition schedule based on the Ebbinghaus forgetting curve
1415

1516
## Installation
1617
```bash
@@ -51,13 +52,19 @@ pytest --cov=study_smart tests/
5152
```
5253

5354
## Google Calendar Integration
54-
To use the Google Calendar import feature you need:
55-
1. A Google account
56-
2. A `credentials.json` file — get this from [Google Cloud Console](https://console.cloud.google.com) by creating a project, enabling the Google Calendar API, and creating OAuth 2.0 credentials (Desktop app)
57-
3. Place `credentials.json` in the root of the project folder
58-
4. On first run a browser window will open asking you to grant calendar access — after that a `token.json` file is saved automatically
55+
56+
To use the Google Calendar import feature, you need to set up your own Google OAuth credentials:
57+
58+
1. Go to Google Cloud Console (https://console.cloud.google.com)
59+
2. Create a new project
60+
3. Enable the Google Calendar API
61+
4. Create OAuth 2.0 credentials (Desktop app)
62+
5. Download the credentials as `credentials.json`
63+
6. Place `credentials.json` in the root of the repository
64+
7. On first run, a browser window will open asking you to grant calendar access
5965

6066
Note: `credentials.json` and `token.json` are excluded from version control for security reasons.
6167

6268
## Study Tips
63-
Hard-coded tips, based on psychological research.
69+
Hard-coded tips, based on psychological research.
70+

docs/build_schedule_flowchart.svg

Lines changed: 1 addition & 0 deletions
Loading

docs/report.ipynb

Lines changed: 398 additions & 0 deletions
Large diffs are not rendered by default.

docs/software_flowchart.svg

Lines changed: 1 addition & 0 deletions
Loading

docs/user_flowchart.svg

Lines changed: 1 addition & 0 deletions
Loading

pyproject.toml

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ authors = [
1010
]
1111
description = "A smart study planner that builds your revision schedule automatically based on your exam dates and availability."
1212
readme = "README.md"
13-
requires-python = ">=3.9"
13+
requires-python = ">=3.12"
1414
classifiers = [
1515
"Programming Language :: Python :: 3",
1616
"Operating System :: OS Independent",
@@ -19,6 +19,10 @@ license = "MIT"
1919
license-files = ["LICEN[CS]E*"]
2020
dependencies = [
2121
"pandas",
22+
"plotly",
23+
"dash>=2.4.0",
24+
"dash-bootstrap-components",
25+
"openpyxl",
2226
"google-auth",
2327
"google-auth-oauthlib",
2428
"google-api-python-client",

src/my_studysmart.xlsx

5.45 KB
Binary file not shown.

0 commit comments

Comments
 (0)