Is a simple CLI tool to log your coding sessions in Notion and auto-generate file templates for coding exercises.
- 📁 Automatically creates a new problem file with headers and starter code
- 🧾 Logs problem metadata to your Notion database:
- Title
- Status (Not started / In progress / Done)
- Time spent
- Topic (multi-select)
- GitHub link (optional)
- 🔐 Uses
.envto keep Notion API keys secret - ⚙️ Works with multiple study types as its input text (e.g.,
📘Theory Study,🧑💻Coding Challenge)
git clone https://github.com/victor-capriles/fuzzy-coding-practice.git
cd fuzzy-coding-practice🐍 Requires Python 3.10+
Tested on: Python 3.13.1
# create virtual environment
python -m venv venv
# activate virtual environment
source venv/bin/activate
# OR on Windows
venv\Scripts\activate
# install requirements
pip install -r requirements.txtCreate a .env file in the root of the project:
NOTION_TOKEN=your_notion_secret
NOTION_DB_ID=your_database_id💡 Make sure to share your Notion database with your integration.
Create the Notion Database:
-
In Notion, create a new database (
Table viewis a good option). -
Add the following columns:
Column Name Property Type Title Title (default, can’t be changed) Type Text Date Date Topic Multi-select Status Status (Not started, In progress, Done) Time Spent Text Github URL URL
To set up the notion integration you can:
- Click the
...icon in the right upper corner > clickConnections> clickdevelop integrationsor click on this URL - Click
New integration - Add the Associated workspace
- Type, select
Internal - Save
You'll have a Capabilities section, leave it on default which is:
- Read content ✅
- Update content ✅
- Insert content ✅
Now you have the Internal Integration Secret token! that you'll have to paste in the .env file
NOTION_TOKEN=your_notion_secret_token
NOTION_DB_ID=your_database_idThe NOTION_DB_ID is the long string in your database's URL (e.g., https://talented-dart-7e7.notion.site/23a51ac69b82806b836ec6f46c387cb2?v=23a51ac69b82813e98f1000c8e85746c)
in this case it would be:
- NOTION_DB_ID=23a51ac69b82806b836ec6f46c387cb2
Run the tool to generate a new problem template with:
python new_problem_template.pyYou'll be prompted to enter:
- folder name
- file name
- problem title and source
- status, topic(s), time spent, GitHub URL
This will:
- create a file with a basic code template
- log the metadata to you connected Notion database
📁 Folder (e.g., arrays, strings): arrays
📝 Filename (e.g., two_sum.py): two_sum.py
🧠 Problem Title: Two Sum
🌐 Source: LeetCode
✅ created: arrays/two_sum.py
📌 Status: Done
⏳ Time Spent: 45m
🏷️ Topic(s): Arrays
✅ Logged to Notion!If you want to improve this tool, feel free to open an issue or submit a PR!