Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

214 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🔮 Cipher Alchemist - Complete Documentation

Version 1.0.0-LTS - Long Term Support Release
A secure, offline-capable PWA for phrase-to-password generation

🚀 Quick Start

Instant Use (No Setup Required)

  1. Open index.html in any modern browser
  2. Start generating secure passwords immediately
  3. Works completely offline after first load

PWA Installation (Recommended)

  1. Visit the app in Chrome/Edge/Safari
  2. Click the install prompt or use browser menu
  3. Enjoy native app experience with offline support

Local Development

# Start local server for PWA testing
python -m http.server 8000
# Visit: http://localhost:8000

Core Features

🔐 Password Generation

  • Secure Algorithm: Advanced cipher-based transformation
  • Customizable Length: 8-64 character passwords
  • Special Characters: Configurable symbol inclusion
  • Memorable Phrases: Convert any phrase to secure password

🎨 User Experience

  • Dark/Light Themes: Automatic and manual theme switching
  • Keyboard Shortcuts: Full keyboard accessibility (Ctrl+G, Ctrl+T, etc.)
  • Copy Protection: Secure clipboard handling
  • Responsive Design: Works on desktop, tablet, and mobile

📱 Progressive Web App

  • Offline Functionality: Works without internet connection
  • Installable: Native app experience on all platforms
  • Fast Loading: Cached resources for instant startup
  • Background Updates: Automatic app updates

🛠️ Developer Tools

  • Dev Dashboard (dev.html): Development utilities and debugging
  • Test Lab (testlab.html): Comprehensive testing environment
  • Version Management: Built-in versioning system
  • Plugin Architecture: Extensible module system

🔗 Sharing & Export

  • Social Sharing: Share phrases (never passwords) safely
  • URL Generation: Shareable links for phrase templates
  • Export Options: Multiple format support

🏗️ Architecture

Core Structure

cipher-alchemist/
├── index.html          # Main application
├── dev.html           # Developer dashboard
├── testlab.html       # Testing environment
├── sw.js              # Service worker (PWA core)
├── manifest.json      # PWA configuration
├── css/               # Modular stylesheets
├── js/                # JavaScript modules
├── assets/            # Icons and documents
└── docs/              # Documentation

JavaScript Modules

  • main.js - Core application logic and initialization
  • cipher-algorithms.js - Password generation algorithms
  • pwa.js - PWA functionality and service worker registration
  • ui-controls.js - User interface interactions
  • theme-manager.js - Theme switching and persistence
  • notifications.js - User feedback and alerts
  • keyboard-shortcuts.js - Accessibility and hotkeys
  • Additional modules - Specialized features

PWA Implementation

  • Service Worker v8: Robust offline caching with cache-first strategy
  • Precaching: All essential resources cached on install
  • Runtime Caching: Dynamic content cached on demand
  • Offline Fallback: Beautiful offline pages with retry functionality
  • Update Management: Automatic updates with user notification

Frequently Asked Questions

Getting Started

  • Q: How do I use it? A: Open index.html, enter a phrase, get a password
  • Q: Is it secure? A: Yes! All processing happens locally, nothing sent anywhere
  • Q: Does it work offline? A: Absolutely! Full PWA functionality after first visit
  • Q: Can I install it? A: Yes! Use browser install prompts or "Add to Home Screen"

Sharing & Integration

  • Q: Can I share examples? A: Yes! Share phrases (never passwords) via direct links
  • Q: How do I customize it? A: Edit themes in CSS, suggestions in JS, features in config
  • Q: Is it accessible? A: Full keyboard navigation, screen reader support, high contrast themes

Technical

  • Q: Why vanilla JS? A: No dependencies, fast, future-proof, easy to maintain
  • Q: How do I report bugs? A: Open an issue or discussion on GitHub
  • Q: Troubleshooting? A: Refresh browser, check compatibility, clear cache if needed

Need more help? See our complete FAQ or start a discussion!


📚 Documentation & Resources

For release notes and version history, see:


🔧 Configuration

Default Settings

// Password generation defaults
DEFAULT_LENGTH: 16
INCLUDE_SPECIAL_CHARS: true
CIPHER_STRENGTH: 'high'

// UI preferences  
THEME: 'auto'
NOTIFICATIONS: true
KEYBOARD_SHORTCUTS: true

Customization

  • All settings stored in localStorage
  • Persistent across sessions and devices
  • Exportable/importable configuration
  • Reset to defaults option available

⌨️ Keyboard Accessibility

Essential Shortcuts

Shortcut Action
Ctrl + Enter Generate password
Ctrl + C Copy password (when focused)
Ctrl + T Toggle theme
Ctrl + ? / F1 Show keyboard help
Tab / Shift+Tab Navigate elements
Alt + 1 / Alt + 2 Toggle sections
Escape Close modal/sections
Delete Clear input

Accessibility Features

  • Screen Reader Compatible - Full ARIA label support
  • Keyboard Navigation - No mouse required for all functions
  • High Contrast Themes - Built-in visual accessibility options
  • Voice Control Friendly - Compatible with assistive technologies
  • Zoom Compatible - Functions properly at high zoom levels
  • Focus Management - Proper focus trapping in modals

WCAG 2.1 AA Compliance

  • 2.1.1: All functionality available from keyboard
  • 2.1.2: No keyboard trap exists
  • 2.4.3: Focus order is logical
  • 2.4.7: Focus indicators are visible
  • 3.2.1: Focus doesn't trigger unexpected changes
  • 4.1.2: All UI components properly identified

🧪 Testing

Manual Testing Checklist

  1. Password Generation: Test various phrases and lengths
  2. Theme Switching: Verify dark/light mode transitions
  3. Offline Mode: Disable network and test full functionality
  4. PWA Installation: Test install/uninstall process
  5. Keyboard Navigation: Test all shortcuts and accessibility
  6. Mobile Responsive: Test touch interactions and layouts

Browser Compatibility

  • Chrome 80+: Full PWA support
  • Firefox 75+: Core functionality
  • Safari 13+: iOS PWA support
  • Edge 80+: Full compatibility

PWA Validation

  • Lighthouse PWA audit: 100/100 score
  • Service worker functionality verified
  • Offline capability confirmed
  • Performance optimized

Testing Tools

  • Dev Dashboard (dev.html): Service worker status, cache inspection
  • Test Lab (testlab.html): Comprehensive test suite
  • Browser DevTools: PWA debugging, performance analysis

🔒 Security

Privacy First

  • No Data Collection: Zero tracking or analytics
  • Local Processing: All operations client-side only
  • No Network Requests: Works completely offline
  • Secure Clipboard: Protected copy operations

Algorithm Security

  • Deterministic: Same phrase always generates same password
  • Cryptographically Sound: Based on proven cipher algorithms
  • Collision Resistant: Extremely low probability of duplicates
  • Memory Safe: No password storage in memory

Security Best Practices

  • Input Sanitization: All inputs properly validated
  • XSS Prevention: Sanitized outputs and CSP headers
  • HTTPS Requirement: Secure contexts for PWA functionality
  • No External Dependencies: Eliminates supply chain risks

📦 Deployment & Release Management

GitHub Actions Workflows

Automated Workflows

  • update-version.yml - Auto-updates version and changelog on push to main
  • deployment-status.yml - Monitors and reports deployment status
  • deploy-by-version.yml - Version-specific deployment management

Manual Release Workflows

  • lts-manual-release.yml - Manual LTS releases with validation
    • Branch Selection - Deploy from any branch (main, hotfix branches)
    • Release Types - Release, Prerelease, Hotfix, LTS
    • Optional Changelog - Auto-generate or skip changelog creation
    • LTS Validation - Additional checks for LTS releases
    • Asset Creation - ZIP/TAR downloads for offline distribution
  • create-tag-release.yml - Quick tag-based releases
  • rollback.yml - Emergency rollback capabilities

LTS Release Process

# For LTS releases, use the manual workflow:
# 1. Go to Actions → LTS Manual Release
# 2. Select:
#    - Version: 1.0.1-LTS (or appropriate LTS version)
#    - Branch: main (or hotfix branch)
#    - Release Type: release
#    - Generate Changelog: ✅
#    - LTS Release: ✅ (enables additional validation)
# 3. Workflow validates LTS infrastructure
# 4. Creates proper LTS release with documentation

GitHub Pages (Current)

  1. Push to main branch
  2. Automatic deployment via GitHub Pages
  3. PWA functionality fully supported
  4. HTTPS enabled by default

Self-Hosting

  1. Copy all files to web server
  2. Ensure HTTPS (required for PWA)
  3. Configure proper MIME types
  4. Test service worker registration

Local Installation

  1. Download repository
  2. Open index.html directly
  3. No build process required
  4. Works from file:// protocol

🔄 Updates & Maintenance

LTS Policy

  • Stability Focus: Bug fixes only, no breaking changes
  • Security Updates: Critical security patches as needed
  • Performance: Optimization improvements
  • Compatibility: Browser support maintenance

Version Management

  • Semantic Versioning: MAJOR.MINOR.PATCH
  • LTS Versioning: X.Y.Z-LTS for long-term support releases
  • Service Worker Versioning: Independent cache versioning
  • Automatic Updates: Users notified of new versions
  • Manual Releases: Controlled release process via GitHub Actions
  • Rollback Capability: Emergency rollback workflows available

💡 Use Cases & Examples

Professional Examples

# Business Quarter Planning
"Q4Target2025Sales" → 0_4T@r9e+2o25S@1e5

# Healthcare Professional
"EMRSecure2025ER" → 3/\/\R5e(vrre2o253R

# Developer Environment
"ProdServer2025Mumbai"|>r0cl5er\/er2o25/\/\v/\/\6@!

# Educational Institution
"InclusiveLearning2025" → 1|\|(1v5!\/e1e@r|\|!|\|92o25

URL Parameter Support

Share specific examples with direct links:

https://dhruvinrsoni.github.io/cipher-alchemist/?phrase=YourPhrase

Educational Benefits

  • Security Awareness: Visual feedback teaches password entropy principles
  • Accessibility Training: Real-world example of inclusive web development
  • Developer Learning: Study modular JavaScript architecture and PWA implementation
  • Cryptography Concepts: Demonstrates character substitution algorithms in practice

🆘 Troubleshooting

Common Issues

PWA Not Installing

  • Ensure HTTPS connection
  • Check browser PWA support
  • Verify manifest.json validity
  • Clear browser cache and retry

Offline Functionality Not Working

  • Verify service worker registration in DevTools
  • Check cache storage for resources
  • Test with hard refresh (Ctrl+Shift+R)
  • Review critical files list in docs

Password Generation Issues

  • Verify JavaScript is enabled
  • Check for browser console errors
  • Test with different phrases
  • Clear localStorage and retry

Keyboard Shortcuts Not Working

  • Ensure modal is not blocking shortcuts
  • Check for browser extension conflicts
  • Test with different browsers
  • Verify JavaScript is enabled

Debug Mode

Access dev.html for:

  • Service worker status
  • Cache inspection
  • Performance metrics
  • Error logging
  • Configuration debugging

Emergency Recovery

If PWA functionality breaks:

  1. Immediate Action: Revert to last working git commit
  2. Check Files: Verify all critical files are intact
  3. Test Service Worker: Check DevTools → Application → Service Workers
  4. Clear Cache: Force browser cache clear and reload
  5. Re-register: Clear service worker and re-register
  6. Full Test: Run complete offline testing protocol

🙋 Frequently Asked Questions

How do I use it?

Open index.html, enter a phrase, get a password. Works in any modern browser.

Is it secure?

Passwords are generated locally using proven cipher algorithms, never sent anywhere. All processing happens client-side only.

How do I install as a PWA?

Use the install button or browser prompt. Works on Chrome, Edge, Firefox, Safari.

Does it work offline?

Yes. All features work offline after first visit. Complete PWA implementation with service worker caching.

Can I share examples?

Yes. Use direct links with phrase parameters. Only share phrases, never actual passwords.

How do I customize?

Edit theme in css/themes.css, suggestions in js/phrase-suggestions.js, UI text in index.html.

Is it accessible?

Full keyboard navigation, screen reader support, high contrast themes, WCAG 2.1 AA compliant.

How do I report bugs or request features?

Open an issue or discussion on GitHub repository.

Why vanilla JavaScript?

No dependencies, fast loading, easy to maintain, future-proof, works everywhere.

Can I use it for production passwords?

This is primarily an educational tool for learning password security concepts. For production use, consider dedicated password managers.


📞 Support

Documentation

Self-Support

  • Test Lab: Use testlab.html for comprehensive testing
  • Browser DevTools: Check console for errors
  • PWA Debugging: Application tab in DevTools
  • Local Testing: Python HTTP server for development

Quick Help Navigation


🎯 Project Goals Achieved

Secure Password Generation: Reliable cipher-based algorithms
Offline Functionality: Complete PWA implementation
User Experience: Intuitive, accessible, responsive design
Developer Experience: Clean modular architecture
Zero Dependencies: Pure HTML, CSS, JavaScript
Cross-Platform: Works everywhere modern browsers exist
LTS Ready: Stable, maintainable, documented codebase
Accessibility: WCAG 2.1 AA compliant with full keyboard support
Educational Value: Demonstrates security concepts and best practices

Status: Production Ready - Long Term Support Active 🔒


📚 Documentation Philosophy

This LTS release follows a minimalist documentation approach:

  • ✅ Essential Information Only: No redundant or outdated docs
  • ✅ Single Source of Truth: This README covers everything users need
  • ✅ Developer Focus: Technical details in docs/DEVELOPMENT.md
  • ✅ Historical Record: docs/CHANGELOG.md preserves development history
  • ❌ No Feature Creep: Documentation bloat eliminated
  • ❌ No Outdated Guides: Legacy docs removed

📋 LTS Status: LOCKED AND STABLE - Modify with extreme caution 🔒

Built with ❤️ by @dhruvinrsoni - Transform your thoughts into security. Ancient wisdom meets modern technology.

About

A creative and secure phrase-to-password generator that transforms text using symbolic cipher techniques. Built as a Progressive Web App (PWA) with offline support, dark/light themes, and a password strength meter.

Topics

Resources

Stars

Watchers

Forks

Releases

Sponsor this project

Packages

Contributors

Languages