A comprehensive, professional-grade JavaFX desktop application for algorithm visualization, learning, and analysis.
Ankit Raj
π§ ar443203@gmail.com
Algorithm Simulator Professional Edition v2.0 is an advanced educational tool that transforms abstract algorithmic concepts into interactive, visual experiences. The application combines theoretical knowledge with practical implementation through real-time visualizations, comprehensive code examples, and performance analysis tools.
| Feature | Description |
|---|---|
| π Secure Configuration | Environment-based credential management |
| π Professional Logging | SLF4J + Logback with rolling file logs |
| π¨ Jitter-Free UI | Smooth hover effects without animation loops |
| π§Ή Code Quality | AlertHelper, InputValidator, Cleanable interfaces |
| π¦ New Modules | Queue Operations & Hash Table visualizations |
- Professional UI: Clean, modern interface with AtlantaFX theme integration
- Responsive Layout: Adaptive design that works across different screen sizes
- Multi-Window Support: Independent module windows with proper lifecycle management
- Advanced Theme System: Dynamic light/dark theme switching with live updates
- CSS-Powered Styling: Professional styling with custom CSS variables
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β Algorithm Simulator β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ€
β Presentation Layer β
β βββ Controllers (FXML-bound) β
β βββ Views (FXML + CSS) β
β βββ Animations (AnimationService) β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ€
β Service Layer β
β βββ NavigationService (Window Management) β
β βββ ThemeManager (Theme Switching) β
β βββ TooltipService (Rich Tooltips) β
β βββ AlertHelper (Unified Dialogs) β
β βββ PreferencesManager (Settings Persistence) β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ€
β Data Layer β
β βββ Models (Stack, Queue, LinkedList, HashTable, Graph) β
β βββ Repositories (Code Examples) β
β βββ Configuration (JSON, Properties) β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ€
β Infrastructure β
β βββ SLF4J + Logback (Logging) β
β βββ InputValidator (Validation) β
β βββ Cleanable Interface (Resource Management) β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
Interactive Stack Visualization with Professional Animations
- Push/Pop/Peek/Clear operations with smooth animations
- Capacity Management with visual progress bar
- Smart Color Coding: Red (near full), Orange (getting full), Green (normal)
- Complete Code Examples with syntax highlighting
Complete LinkedList Implementation with Bidirectional Operations
- Insert: Beginning, End, Position-based
- Delete: By value or by position
- Search: Sequential search with visual progression
- Node Visualization: Circular nodes with arrow connections
FIFO Data Structure with Professional Animations
- Enqueue/Dequeue/Front/Rear operations
- Horizontal visualization showing queue flow
- Capacity tracking with color-coded progress
- Real-time size and element tracking
Key-Value Storage with Collision Handling Visualization
- Insert/Search/Delete operations
- Hash function visualization
- Collision handling (chaining) with visual representation
- Load factor monitoring
Comprehensive Sorting Algorithm Visualization (9 Algorithms)
| Basic | Advanced | Specialized |
|---|---|---|
| Bubble Sort | Merge Sort | Shell Sort |
| Selection Sort | Quick Sort | Radix Sort |
| Insertion Sort | Heap Sort | Counting Sort |
- Real-time Bar Chart visualization
- Step Control: Play, pause, step-by-step, speed control
- Statistics: Comparisons, swaps, execution time
Interactive Search Algorithm Demonstrations
- Linear Search: Sequential element checking
- Binary Search: Divide-and-conquer with range visualization
- Interpolation Search: Smart position estimation
Advanced Graph Theory Visualization
- Traversals: BFS, DFS
- Shortest Path: Dijkstra's, A* (basic)
- Topological Sort
- Interactive Canvas: Drag-and-drop positioning
Algorithm Complexity Comparison
- Time Complexity Curves: O(1), O(log n), O(n), O(n log n), O(nΒ²)
- Side-by-side comparison of algorithms
- Recommendations based on use cases
| Component | Version |
|---|---|
| Java | 21+ |
| JavaFX | 24.0.2 |
| Maven | 3.8+ |
<!-- Core -->
<dependency>javafx-controls, javafx-fxml</dependency>
<dependency>atlantafx-base (Theme Engine)</dependency>
<dependency>ikonli-javafx (Icons)</dependency>
<dependency>controlsfx (Enhanced Controls)</dependency>
<!-- Logging -->
<dependency>slf4j-api:2.0.9</dependency>
<dependency>logback-classic:1.4.14</dependency>
<!-- Email (Optional) -->
<dependency>jakarta.mail:2.0.1</dependency># Clone and build
git clone https://github.com/yourusername/algorithm-simulator.git
cd algorithm-simulator
mvn clean install
# Run the application
mvn javafx:runProfessional logging with SLF4J + Logback:
logs/
βββ algorithm-simulator.log # Current log
βββ algorithm-simulator.2026-01-03.log # Historical
βββ algorithm-simulator.2026-01-02.log
Features:
- Colored console output
- Daily rolling file logs (30-day retention)
- 100MB total size cap
- DEBUG level for com.simulator package
For feedback functionality, configure via environment variables:
# Windows PowerShell
$env:EMAIL_SENDER = "your-email@gmail.com"
$env:EMAIL_PASSWORD = "your-app-password"
$env:EMAIL_RECIPIENT = "feedback@example.com"
# Linux/Mac
export EMAIL_SENDER="your-email@gmail.com"
export EMAIL_PASSWORD="your-app-password"
export EMAIL_RECIPIENT="feedback@example.com"Or create src/main/resources/config/email.properties:
email.sender=your-email@gmail.com
email.password=your-app-password
email.recipient=feedback@example.com
β οΈ Security Note: Never commit credentials to version control. Theemail.propertiesfile is excluded in.gitignore.
| Shortcut | Action |
|---|---|
Ctrl+W |
Close current window |
Ctrl+T |
Toggle theme |
Ctrl+M |
Maximize/minimize |
F11 |
Fullscreen mode |
Esc |
Close current window |
Ctrl+Q |
Quit application |
- PrimerLight - Clean, GitHub-inspired light theme
- PrimerDark - Modern dark theme
- Nord - Arctic-inspired color palette
- Cupertino - Apple-inspired design
Themes apply live across all open windows.
- π Computer Science Students (Undergraduate/Graduate)
- π¨βπ« CS Educators and Professors
- πΌ Technical Interview Candidates
- π¨βπ» Professional Developers (Reference/Review)
- π Coding Competition Participants
algorithm-simulator/
βββ src/main/java/com/simulator/
β βββ AlgorithmSimulatorApplication.java # Entry point
β βββ MainController.java # Main view controller
β βββ *Controller.java # Module controllers
β βββ *Service.java # Service layer
β βββ *Model.java # Data models
β βββ *Repository.java # Code repositories
β βββ AlertHelper.java # Unified dialogs
βββ src/main/resources/
β βββ fxml/ # View definitions
β βββ css/ # Stylesheets
β βββ config/ # Configuration files
β βββ logback.xml # Logging config
βββ logs/ # Application logs
βββ pom.xml # Maven configuration
| Category | Features |
|---|---|
| Algorithms | 6 domains, 20+ specific algorithms |
| Visualizations | Real-time animations, step control |
| Code Examples | Complete implementations with syntax highlighting |
| UI/UX | Professional themes, smooth animations, responsive |
| Architecture | Enterprise patterns, modular design |
| Quality | SLF4J logging, input validation, error handling |
| Security | No hardcoded credentials, environment-based config |
This project is for educational purposes. See LICENSE for details.
Contributions welcome! Please read CONTRIBUTING.md for guidelines.
Algorithm Simulator Professional Edition v2.0
Bridging the gap between theory and understanding
