<<<<<<< HEAD
A privacy-first, extensible knowledge management platform with end-to-end encryption
Features β’ Installation β’ Usage β’ Security β’ Documentation β’ Contributing
TMapp is a professional-grade, privacy-first note-taking application designed for users who demand both security and functionality. Unlike traditional note-taking software, TMapp prioritizes:
- π End-to-end encryption - Your notes are encrypted locally before storage
- π Local-first architecture - No cloud dependency, your data stays on your device
- π Structured knowledge linking - Connect ideas with internal note references
- π Advanced visualization - Embed charts, diagrams, and graphs directly in notes
- π¨ Modern UI/UX - Professional dark/light themes with intuitive design
Perfect for personal knowledge management, secure research documentation, technical project planning, and sensitive information storage.
- AES-256-GCM Encryption - Military-grade encryption for all note content
- Argon2id Key Derivation - Resistant to brute-force and side-channel attacks
- Master Password Protection - Single password to unlock your entire vault
- Zero-Knowledge Architecture - No telemetry, no cloud sync, complete privacy
- Secure Memory Handling - Automatic key clearing and secure deletion
- Auto-Lock Mechanism - Configurable timeout for automatic vault locking
- Account Lockout Protection - Prevents brute-force password attempts
- Hybrid Markdown + Rich Text Editor - Best of both worlds
- Syntax Highlighting - Code blocks with language-specific highlighting
- Real-time Auto-Save - Never lose your work (saves every 2 seconds)
- Internal Note Linking - Create connections between related notes
- Embedded Media Support - Images, files, and attachments
- Formatting Toolbar - Bold, italic, underline, and more
- Word Count & Statistics - Track your writing progress
Embed visual elements directly inside your notes:
- Mermaid Diagrams - Flowcharts, sequence diagrams, and more
- Chart.js Visualizations - Bar charts, line graphs, pie charts
- Knowledge Graphs - Visualize connections between notes
- LaTeX Math Rendering - Beautiful mathematical formulas
- Tables & Data Blocks - Structured data presentation
Example Mermaid Diagram:
```mermaid
graph LR
A[Research] --> B[Notes]
B --> C[Visualization]
C --> D[Insights]
**Example Chart:**
```markdown
```chart
type: bar
labels: [Jan, Feb, Mar]
data: [30, 45, 60]
### ποΈ Organization & Management
- **Notebooks** - Organize notes into logical collections
- **Tags & Metadata** - Flexible categorization system
- **Favorites & Pinning** - Quick access to important notes
- **Archive System** - Hide notes without deleting them
- **Trash & Recovery** - Soft delete with restore capability
- **Full-Text Search** - Find notes instantly across your entire vault
- **Fuzzy Matching** - Smart search that understands typos
### π¨ User Experience
- **Professional Dark/Light Themes** - Easy on the eyes, day or night
- **3-Panel Layout** - Sidebar, note list, and editor for efficient workflow
- **Keyboard Shortcuts** - Power-user friendly navigation
- **Context Menus** - Right-click for quick actions
- **Responsive Design** - Adapts to different screen sizes
- **Status Indicators** - Always know your save and encryption status
---
## π Installation
### Prerequisites
- **Python 3.8 or higher**
- **pip** (Python package manager)
- **Windows, macOS, or Linux**
### Quick Start
1. **Clone the repository:**
```bash
git clone https://github.com/yourusername/TMapp.git
cd TMapp
-
Install dependencies:
pip install -r requirements.txt
-
Run the application:
python src/main.py
On first launch, you'll be guided through a setup wizard:
- Create Master Password - Choose a strong, memorable password
- Password Requirements:
- Minimum 12 characters
- At least one uppercase letter
- At least one lowercase letter
- At least one digit
- At least one special character
- Store Safely -
β οΈ If you forget your password, your notes cannot be recovered!
- Launch TMapp - Enter your master password
- Create a Note - Click "New Note" or press
Ctrl+N - Write Content - Use the rich text editor with Markdown support
- Auto-Save - Your changes are saved automatically every 2 seconds
- Organize - Add to notebooks, tag, favorite, or pin important notes
- Search - Use the search bar to find notes instantly
- Lock - Press
Ctrl+Lto lock the application when stepping away
| Shortcut | Action |
|---|---|
Ctrl+N |
Create new note |
Ctrl+S |
Manual save (auto-save is always active) |
Ctrl+L |
Lock application |
Ctrl+T |
Toggle dark/light theme |
Ctrl+F |
Focus search box |
Ctrl+Q |
Quit application |
Ctrl+B |
Bold text |
Ctrl+I |
Italic text |
Ctrl+U |
Underline text |
Right-click on any note to access:
- Add/Remove from Favorites
- Pin/Unpin note
- Move to Trash
- Restore from Trash
- Delete Permanently
# Notes are automatically encrypted before storage
# Simply type in the editor and changes are saved automatically- Create notebooks to group related notes
- Drag notes between notebooks
- Each notebook shows note count
- Deleted notes go to Trash (soft delete)
- Restore notes from Trash anytime
- Empty Trash to permanently delete all trashed notes
TMapp uses industry-standard cryptography:
- Algorithm: AES-256-GCM (Galois/Counter Mode)
- Key Derivation: Argon2id with configurable parameters
- Time cost: 3 iterations
- Memory cost: 100 MB
- Parallelism: 4 threads
- Salt: 16-byte random salt per vault
- Nonce: 12-byte random nonce per encryption operation
- Authentication: 16-byte authentication tag (GCM)
Zero-Trust Local Storage:
- All note content is encrypted before writing to disk
- Master password never stored (only salt is stored)
- Encryption keys exist only in memory during active session
- Keys are securely cleared on lock/exit
Threat Protection:
- β Unauthorized disk access
- β Malicious file tampering (integrity verification)
- β Brute force password attempts (account lockout)
- β Memory dumps (keys cleared on lock)
- β Side-channel attacks (Argon2id resistance)
-
Use a Strong Master Password
- Minimum 16 characters recommended
- Use a passphrase with multiple words
- Consider using a password manager
-
Regular Backups
- Backup your vault regularly
- Store backups in encrypted containers
- Test restore procedures
-
Physical Security
- Lock your computer when away
- Enable auto-lock in TMapp settings
- Use full-disk encryption on your device
-
Password Recovery
β οΈ There is NO password recovery mechanism- This is by design for security
- Store your password in a secure location
TMapp/
βββ src/
β βββ core/ # Core functionality
β β βββ auth_manager.py # Authentication & password management
β β βββ config.py # Application configuration
β β βββ database.py # SQLite database wrapper
β β βββ encryption.py # AES-256-GCM encryption service
β βββ controllers/ # Business logic
β β βββ note_controller.py # Note CRUD operations
β β βββ notebook_controller.py # Notebook management
β βββ models/ # Data models
β β βββ note.py # Note entity
β β βββ notebook.py # Notebook entity
β βββ ui/ # User interface
β β βββ main_window.py # Main application window
β β βββ auth_dialog.py # Authentication dialog
β β βββ first_run_wizard.py # Setup wizard
β β βββ theme_manager.py # Theme system
β βββ utils/ # Utilities
β β βββ backup_manager.py # Backup/restore functionality
β β βββ migration.py # Database migrations
β βββ app.py # Application entry point
β βββ main.py # Main launcher
βββ tests/ # Unit tests
βββ docs/ # Documentation
βββ requirements.txt # Python dependencies
βββ reset_db.bat # Database reset utility (Windows)
βββ delete_database.py # Database deletion script
βββ README.md # This file
- Language: Python 3.8+
- GUI Framework: PyQt6
- Database: SQLite3 with encryption
- Cryptography:
cryptographylibrary (AES-256-GCM, Argon2id) - Styling: QSS (Qt Style Sheets)
-
Clone and install:
git clone https://github.com/yourusername/TMapp.git cd TMapp pip install -r requirements.txt -
Run in development mode:
python src/main.py
-
Run tests:
pytest tests/
If you need to reset the database:
Option 1: Simple Script
python clear_db.pyOption 2: Application Menu
- File β Clear All Notes...
- Type "DELETE ALL" to confirm
We welcome contributions! Please follow these guidelines:
- Fork the repository
- Create a feature branch:
git checkout -b feature/amazing-feature - Commit your changes:
git commit -m 'Add amazing feature' - Push to branch:
git push origin feature/amazing-feature - Open a Pull Request
Code Standards:
- Follow PEP 8 style guide
- Add docstrings to all functions/classes
- Write unit tests for new features
- Update documentation as needed
- Unit Tests: Core encryption, authentication, database operations
- Security Tests: Encryption integrity, authentication bypass attempts
- Integration Tests: Editor rendering, vault lifecycle, UI workflows
# Run all tests
pytest
# Run with coverage
pytest --cov=src tests/
# Run specific test file
pytest tests/test_encryption.py- Security Model - Detailed security architecture
- API Documentation - Developer API reference
- User Guide - Comprehensive user manual
- Database Reset Guide - Troubleshooting encryption issues
Configuration file location:
- Windows:
C:\Users\<username>\.tmapp\config.json - macOS:
~/Library/Application Support/TMapp/config.json - Linux:
~/.config/tmapp/config.json
Configurable Options:
{
"theme": "dark",
"auto_lock_timeout": 300,
"auto_backup_enabled": true,
"backup_interval": 3600,
"editor_font_size": 16
}- Collaborative Encrypted Workspaces - Share notes securely
- Real-time Editing - Collaborative editing with conflict resolution
- AI-Assisted Summarization - Automatic note summaries
- Secure Cloud Sync - End-to-end encrypted cloud backup
- Mobile Companion Apps - iOS and Android clients
- Graph-Based Research Navigation - Visual knowledge exploration
- Plugin System - Extensible architecture for custom features
- Export Formats - PDF, HTML, Markdown export
- Import Tools - Import from Evernote, Notion, OneNote
- Version History - Track note changes over time
- Attachment Encryption - Encrypt embedded files
- Hardware Key Support - YubiKey integration
v1.0.0 (Current)
- β Core encryption engine
- β Rich text editor
- β Notebook organization
- β Search functionality
- β Dark/light themes
- β Auto-save & auto-lock
- β Trash & recovery
Q: Is TMapp free? A: Yes, TMapp is open-source and free to use under the MIT License.
Q: Does TMapp sync to the cloud? A: No, TMapp is local-first. Your notes stay on your device. Cloud sync is planned for future releases with end-to-end encryption.
Q: Can I export my notes? A: Export functionality is planned for a future release. Currently, notes are stored in an encrypted SQLite database.
Q: What happens if I forget my password? A: Unfortunately, there is no password recovery. This is by design for security. Your notes cannot be decrypted without the master password.
Q: How secure is the encryption? A: TMapp uses AES-256-GCM with Argon2id key derivation, which are industry-standard, military-grade encryption algorithms.
Q: Where are my notes stored? A: Notes are stored in an encrypted SQLite database at:
- Windows:
C:\Users\<username>\.tmapp\notes.db - macOS:
~/Library/Application Support/TMapp/notes.db - Linux:
~/.config/tmapp/notes.db
Q: Can I use TMapp on multiple devices? A: Currently, each installation is independent. Multi-device sync is planned for future releases.
Q: How do I backup my notes?
A: TMapp automatically creates backups. You can also manually copy the notes.db file to a secure location.
Issue: "Decryption failed" errors
- Cause: Database contains notes encrypted with different salts (development issue)
- Solution: Reset the database using
reset_db.bator see DATABASE_RESET.md
Issue: Application won't start
- Check: Python version (3.8+ required)
- Check: All dependencies installed (
pip install -r requirements.txt) - Check: No conflicting PyQt installations
Issue: Forgot master password
- Unfortunately: There is no password recovery
- Prevention: Store password in a secure password manager
Issue: Notes not saving
- Check: Disk space available
- Check: Write permissions for application directory
- Check: Application logs for errors
- GitHub Issues: Report bugs or request features
- Discussions: Ask questions and share ideas
- Email: support@tmapp.example.com
This project is licensed under the MIT License - see the LICENSE file for details.
MIT License
Copyright (c) 2024 TMapp Contributors
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
- PyQt6 - Excellent Python GUI framework
- cryptography - Robust cryptographic library
- Argon2 - Password hashing competition winner
- AES-GCM - NIST-approved encryption standard
- Open Source Community - For inspiration and support
- Project Maintainer: Your Name
- Email: your.email@example.com
- GitHub: @yourusername
- Website: https://tmapp.example.com
Made with β€οΈ and π by the TMapp Team
The Secure Notes Application is a cross-platform desktop note-taking application designed with a strong emphasis on security and privacy. It allows users to create, edit, and store notes securely, ensuring that sensitive information remains protected through encryption.
- End-to-End Encryption: All notes are encrypted before being saved, ensuring that only authorized users can access them.
- User-Friendly Interface: A simple and intuitive GUI for easy note management.
- Cross-Platform Compatibility: Runs on Windows, macOS, and Linux.
- Secure Password Management: Implements strong password policies and secure storage of credentials.
- Privacy-Focused Design: No user data is collected or transmitted, ensuring complete privacy.
- Clone the repository:
git clone https://github.com/hatscode/secure-notes-app.git - Navigate to the project directory:
cd secure-notes-app - Install the required dependencies:
pip install -r requirements.txt
To start the application, run the following command:
python src/main.py
This project follows a security-first approach throughout its development. Comprehensive threat modeling has been conducted to identify potential vulnerabilities and mitigate risks. Contributions to enhance security features are welcome.
Unit tests are provided to ensure the correctness and security of the encryption functionalities. To run the tests, use:
pytest tests/
This project is licensed under the MIT License. See the LICENSE file for more details.
07f8357c75001a99bd7ebbb69168f8bb8f818e2d