Alem 2.0 is a modern, feature-rich note-taking application with a glassmorphism UI design, built using Python and PyQt6. It offers advanced features like Redis caching, Discord Rich Presence, encryption for password-protected notes, and AI-powered semantic search.
- Glassmorphism UI: Modern translucent design with dark theme
- Dual Editing Modes: Markdown and HTML editing with live preview
- Rich Text Editing: WYSIWYG editor with formatting toolbar
- Advanced Search: Real-time text search with AI semantic search option
- Password Protection: AES encryption with PBKDF2 key derivation
- Redis Caching: High-performance caching layer for improved responsiveness
- Discord Rich Presence: Shows note-taking activity on Discord
- Comprehensive Analytics: Real-time performance metrics in status bar
- Cross-platform: Works on Windows, Linux, and macOS
aAlem/
├── alem_app/
│ ├── __init__.py
│ ├── core/
│ │ ├── __init__.py
│ │ ├── cache.py # Redis caching implementation
│ │ └── discord_rpc.py # Discord Rich Presence integration
│ ├── database/
│ │ ├── __init__.py
│ │ └── database.py # SQLite database with Note model
│ ├── ui/
│ │ ├── __init__.py
│ │ ├── actions.py # Menu and shortcut setup
│ │ ├── left_panel.py # Sidebar UI components
│ │ ├── main_window.py # Main application window
│ │ ├── right_panel.py # Editor and preview panels
│ │ └── settings_dialog.py # Application settings UI
│ ├── utils/
│ │ ├── __init__.py
│ │ ├── encryption.py # Note encryption/decryption
│ │ └── logging.py # Application logging
│ └── main.py # Application entry point
├── Alem.py # Main application launcher
├── config.py # Application configuration
├── install_enhanced.py # Enhanced installation script
├── launch_enhanced.py # Enhanced launcher with diagnostics
├── requirements.txt # Python dependencies
├── alem.png # Application icon
└── README.md # Project documentation
- Entry point with enhanced setup
- Application configuration and styling
- Exception handling and error reporting
- Welcome message for first-time users
- Discord RPC timer management
- Primary UI with split-panel layout
- Note management (create, save, delete, load)
- Search functionality with debouncing
- Markdown/HTML preview rendering
- Analytics and performance monitoring
- Keyboard shortcuts and menu actions
- Responsive design with resize handling
- SQLite database implementation
- Note model with encryption support
- CRUD operations for notes
- Search functionality
- Statistics and performance metrics
- Redis caching manager for notes
- Dirty note tracking for periodic flush
- Performance optimization through caching
- AES encryption using Fernet
- PBKDF2 key derivation with configurable iterations
- Password-based note protection
- Discord Rich Presence integration
- Activity updates with customizable details
- Presence management with buttons
Key dependencies include:
- PyQt6: GUI framework
- PyQt6-WebEngine: Web-based preview rendering
- markdown: Markdown processing
- redis: Caching layer
- cryptography: Note encryption
- pypresence: Discord integration
- psutil: System monitoring
- Run
python install_enhanced.pyfor full installation - Configure Discord RPC in config.py (optional)
- Start Redis server for caching (optional)
- Launch with
python launch_enhanced.pyorpython Alem.py
Main configuration is in config.py:
- UI settings (themes, fonts, window size)
- Performance settings (cache intervals, search debounce)
- Redis configuration
- Discord RPC settings
- Security parameters (KDF iterations)
Ctrl+N: New noteCtrl+S: Save noteCtrl+O: Quick openCtrl+F: Search notesCtrl+L: Lock/unlock noteCtrl+1/2: Switch edit/preview modesF5: Refresh previewF11: Toggle fullscreen
- Uses modern PyQt6 with Fusion style
- Implements lazy loading for performance
- Background processing for non-blocking operations
- Comprehensive error handling and logging
- Responsive UI with adaptive layouts