DyNotes is a note-taking application I created to organize thoughts using a dynamic tag system visualized as an interactive graph. I built it because I couldn't find an existing tool that quite fit my needs.
-
Tag-Based Organization:
- Organize notes with a hierarchical tag system.
- Visualize tag relationships in an interactive graph.
- Search notes by selecting tags, respecting the hierarchy.
-
Full-Text Search:
- Find notes containing specific words or phrases.
- Combine with tag-based search for more precise queries.
-
Visibility Levels:
- Assign visibility levels to notes for basic access control.
- Search results are filtered based on user's permission level.
-
MMR (Match Making Rating) System:
- Compare and rank notes using an Elo-like rating system.
- Helps surface content you've found more useful over time.
-
Markdown Support:
- Write notes using Markdown for basic formatting.
- Preview formatted notes while editing.
- Python 3.7+
- Flask
- SQLite3
- Node.js and npm (for TypeScript compilation)
-
Clone the repository:
git clone https://github.com/yourusername/dynotes.git cd dynotes
-
Install Python dependencies:
pip install -r requirements.txt
-
Install TypeScript and compile:
npm install npm run build
-
Initialize and run:
python app.py
-
Open
http://localhost:5000
in your browser -
(Optional) If you want to test on mobile, get your ip adress. If you're using arch, you do that by
ip addr show
, or just look at the terminal when runningpython app.py
.and then unblock port
5000
.sudo ufw allow 5000
remember to close the port afterwards
sudo ufw delete allow 5000
If you dont use Arch you obviously have bigger problems in life, and I cannot help you with either.
- Make changes to
tagGraph.ts
or other files. - Compile TypeScript:
npm run build
- Restart the Flask app:
python app.py
- Refresh your browser to see changes
DyNotes is a personal project that works for my needs, and works on my website. but it's not polished for wide-scale use. If you're interested in using it, you might need to tweak things to fit your setup (especially the password protection parts)
Feel free to submit pull requests if you want to add features or fix bugs. I'm always open to improvements!
This project is under the MIT License. See the LICENSE file for details.
Created by Rickard