The Study Session Manager is a comprehensive tool designed to enhance productivity during study or work sessions. It combines website blocking, session tracking, note-taking, and optional Twitter integration for sharing session summaries.
- Website Blocking: Temporarily block distracting websites during study sessions.
- Session Tracking: Keep track of study session durations and frequencies.
- Note Taking: Capture session notes with customizable prompts.
- Session Collection: Group multiple session notes into daily summaries.
- Twitter Integration (Optional): Share session summaries on Twitter.
- Clone this repository:
git clone https://github.com/yourusername/study-session-manager.git cd study-session-manager
- Install required dependencies:
pip install -r requirements.txt
The main script main.py
provides several actions:
sudo python main.py start --duration 60 --sites facebook,twitter
This starts a 60-minute session, blocking Facebook and Twitter.
sudo python main.py end
This ends the current session, unblocks sites, and prompts for session notes. Unless the script ends prematurely, this should not be necessary.
python main.py collect --collect-from 1 --to 5
This collects notes from sessions 1 through 5 into a single daily summary, aggregating the durations in so doing.
python main.py tweet
This allows you to select a session or collection to tweet.
To use the Twitter integration:
-
Create a developer account and project at Twitter Developer Portal.
-
Edit the user authentication settings for your app, which you can find on the
Settings
page of your application.
Here are the settings I used to enable my application to work properly:
- Obtain your API keys and tokens. Somewhat confusingly, the relevant keys here are the
API Key and Secret
, not the ones contained within theOAuth 2.0
section:
- Create a
.env
file in the project root with your Twitter credentials:X_CLIENT_ID=your_client_id X_CLIENT_SECRET=your_client_secret
- Note that I kept the names as is to conform with the examples that X has posted on their GitHub which contains other relevant examples.
- Edit
constants.py
to customize file paths, prompts, and other settings. - Create a
default_sites.txt
file to specify sites to block by default.
Contributions are welcome! Please feel free to submit a Pull Request.
- Add a GUI / web interface for easier interaction.
- Implement a database for storing session data.
- Add a Pomodoro timer.
- Integrate a LLM to analyze session notes and provide pointers.
- Data visualization for session statistics.