Skip to content
/ aAlem Public
forked from yashclouded/aAlem

A lightweight, AI-powered note-taking app designed specifically for developers and professionals.

License

Notifications You must be signed in to change notification settings

a3ro-dev/aAlem

 
 

Repository files navigation

🌟 Alem 2.0 - Smart Notes with Modern UI

Alem Icon
⏩ The next generation of intelligent note-taking with glassmorphism design, AI-powered features, and professional-grade performance.

Python PyQt6 License Platform

✨ What's New in 2.0

🎨 Modern Glassmorphism UI

  • Translucent Windows: Beautiful glass-like transparency effects
  • Modern Design Language: Apple-inspired liquid glass aesthetics
  • Smooth Animations: Subtle hover effects and transitions
  • Dark Theme: Professional dark mode with vibrant accents
  • Custom Window: Frameless design with custom title bar

💎 Modern and Intuitive UI

  • Updated Toolbar Icons: Clear and modern icons for improved usability.
  • Improved Styling: Enhanced styling for better clarity and a more polished look.

⌨️ Windows-Style Keyboard Shortcuts

  • Ctrl+N - New Note
  • Ctrl+S - Save Note
  • Ctrl+O - Quick Open
  • Ctrl+F - Search Notes
  • Ctrl+L - Lock/Unlock Note
  • Ctrl+1/2 - Switch Edit/Preview modes
  • F5 - Refresh Preview
  • F11 - Toggle Fullscreen
  • Ctrl+, - Settings

📝 Enhanced Markdown Experience

  • Live Preview: Real-time rendered markdown with beautiful styling
  • Dual Mode: Raw markdown editing + rich preview
  • Syntax Highlighting: Code blocks with proper highlighting
  • Extended Support: Tables, TOC, fenced code blocks
  • Web Rendering: Uses WebEngine for pixel-perfect preview

📊 Crystal Clear Analytics

  • Real-time Metrics: Word count, character count, notes total
  • Performance Monitor: Search time, memory usage, cache status
  • Session Tracking: Time elapsed, operations performed
  • Status Indicators: Live performance feedback in status bar

🎮 Discord Rich Presence

  • Activity Display: Shows "Taking notes in Alem" on Discord
  • GitHub Integration: Direct links to repository
  • Session Time: Shows how long you've been using Alem
  • Custom Status: Displays current activity and app branding

Redis Caching System

  • High Performance: Lightning-fast note loading and saving
  • Smart Caching: Automatically caches frequently accessed notes
  • Periodic Sync: Regular background sync to database
  • Crash Protection: Data safety with automatic backups

🔐 Advanced Security

  • Password Protection: Encrypt sensitive notes with military-grade encryption
  • PBKDF2 Encryption: 390,000+ iterations for maximum security
  • Lock/Unlock UI: Simple toggle for note protection
  • Secure Storage: Encrypted content in database

⚙️ Comprehensive Settings

  • UI Customization: Fonts, themes, layout options
  • Performance Tuning: Cache settings, auto-save intervals
  • Feature Toggle: Enable/disable AI, Discord, Redis
  • Markdown Options: Configure extensions and rendering
  • Security Settings: Encryption parameters

⏩ Quick Start

Prerequisites

  • Python 3.8+ (3.10+ recommended)
  • 4GB RAM minimum (8GB+ for AI features)
  • 100MB free disk space
  • Redis server (optional, for caching)

Installation

Option 1: Enhanced Installer (Recommended)

# Download and run the enhanced installer
python install_enhanced.py

Option 2: Manual Installation

# Clone the repository
git clone https://github.com/a3ro-dev/aAlem.git
cd aAlem

# Install dependencies
pip install -r requirements.txt

# Launch Alem
python launch_enhanced.py

Option 3: Quick Install

# Install core dependencies only
pip install PyQt6 markdown cryptography psutil redis pypresence

# Run directly
python Alem.py

First Launch

  1. Run the launcher: python launch_enhanced.py
  2. Environment Check: Automatic dependency verification
  3. Feature Detection: AI, Redis, Discord RPC availability
  4. Welcome Tour: Introduction to new features

🎯 Core Features

📋 Smart Note Management

  • Intelligent Search: AI-powered semantic search with fallback text search
  • Tag Organization: Flexible tagging system with smart filtering
  • Quick Access: Fast note switching with Ctrl+O
  • Auto-Save: Configurable auto-save intervals (default 30s)

🎨 Rich Text Editing

  • WYSIWYG Editor: Rich text with formatting toolbar
  • Markdown Support: Full markdown with live preview
  • Format Switching: Toggle between HTML and Markdown modes
  • Code Blocks: Syntax highlighting for 100+ languages

🔍 Advanced Search

  • Real-time Search: Instant results as you type (300ms debounce)
  • Multiple Modes: Text search and AI semantic search
  • Performance Metrics: Search time tracking and optimization
  • Filter Options: All notes, recent, locked

💾 Data Management

  • SQLite Database: Reliable local storage
  • Redis Caching: Optional high-performance caching layer
  • Auto-Backup: Periodic data protection
  • Export/Import: Note backup and restoration

🎛️ Configuration

Discord RPC Setup

  1. Go to Discord Developer Portal
  2. Create new application named "Alem"
  3. Copy Application ID to config.py
  4. Upload app icon as "alem" asset
  5. Enable Rich Presence in settings

Redis Configuration

# Install Redis (Windows with Chocolatey)
choco install redis-64

# Install Redis (Ubuntu/Debian)
sudo apt install redis-server

# Install Redis (macOS with Homebrew)  
brew install redis

# Start Redis service
redis-server

Performance Tuning

# config.py settings for optimization
{
    "auto_save_interval": 30000,      # 30 seconds
    "redis_flush_interval_s": 60,     # 1 minute
    "search_debounce_delay": 300,     # 300ms
    "max_search_results": 100,        # Limit results
    "kdf_iterations": 390000          # Security vs speed
}

🏗️ Architecture

Technology Stack

  • UI Framework: PyQt6 with glassmorphism design
  • Database: SQLite with Redis caching layer
  • Markdown: Python-Markdown with extensions
  • Encryption: Cryptography library with PBKDF2
  • RPC: pypresence for Discord integration
  • Monitoring: psutil for performance metrics

Performance Features

  • Lazy Loading: Notes loaded on-demand for memory efficiency
  • Background Processing: Non-blocking operations
  • Smart Caching: Intelligent cache invalidation
  • Memory Management: Automatic cleanup and optimization

Security Implementation

  • Zero-Knowledge: Passwords never stored, only hashes
  • AES Encryption: Industry-standard encryption for locked notes
  • Salt Generation: Unique salt per encrypted note
  • Key Derivation: PBKDF2 with configurable iterations

📊 Performance Benchmarks

Feature Performance Memory Usage
Note Loading <50ms ~10MB per 1000 notes
Search (Text) <100ms Minimal overhead
Search (AI) 200-500ms ~2GB for models
Markdown Render <20ms ~1MB per note
Encryption/Decrypt <10ms Minimal overhead

🛠️ Development

Project Structure

aAlem/
├── alem_app/
│   ├── __init__.py
│   ├── core/
│   │   ├── __init__.py
│   │   ├── cache.py
│   │   └── discord_rpc.py
│   ├── database/
│   │   ├── __init__.py
│   │   └── database.py
│   ├── ui/
│   │   ├── __init__.py
│   │   ├── actions.py
│   │   ├── left_panel.py
│   │   ├── main_window.py
│   │   ├── right_panel.py
│   │   └── settings_dialog.py
│   ├── utils/
│   │   ├── __init__.py
│   │   ├── encryption.py
│   │   └── logging.py
│   └── main.py
├── Alem.py
├── config.py
├── install_enhanced.py
├── launch_enhanced.py
├── requirements.txt
├── alem.png
└── README.md

Contributing

  1. Fork the repository
  2. Create feature branch (git checkout -b feature/amazing-feature)
  3. Commit changes (git commit -m 'Add amazing feature')
  4. Push to branch (git push origin feature/amazing-feature)
  5. Open Pull Request

Building from Source

# Development setup
git clone https://github.com/a3ro-dev/aAlem.git
cd aAlem

# Create virtual environment
python -m venv venv
source venv/bin/activate  # Windows: venv\Scripts\activate

# Install development dependencies
pip install -r requirements.txt
pip install pytest black flake8

# Run tests
pytest

# Code formatting
black .
flake8 .

🔧 Troubleshooting

Common Issues

App Won't Start

# Check Python version
python --version

# Verify dependencies
python -c "import PyQt6; print('PyQt6 OK')"

# Run diagnostic
python launch_enhanced.py --debug

Missing Features

  • No Discord RPC: Install pypresence and configure client ID
  • No AI Search: Install transformers and sentence-transformers
  • No Caching: Install and start Redis server
  • No WebEngine: Install PyQt6-WebEngine

Performance Issues

  • Slow Search: Enable Redis caching
  • High Memory: Disable AI features in settings
  • Slow Startup: Remove large note databases

Getting Help

📄 License

This project is licensed under the MIT License - see the LICENSE file for details.

🙏 Acknowledgments

  • PyQt6 - Amazing GUI framework
  • Redis - High-performance caching
  • Discord - Rich presence integration
  • Python-Markdown - Excellent markdown processing
  • Cryptography - Secure encryption implementation

Made with ❤️ by a3ro-dev

GitHub Stars GitHub Forks

Experience the future of note-taking with Alem 2.0

About

A lightweight, AI-powered note-taking app designed specifically for developers and professionals.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 100.0%