How ahmedabdoelhawary/flutter-algorithm-visualizer works
AlgoDive is an offline-first mobile app for learning algorithms: users explore visualizations, then practice coding problems in an on-device editor and track their progress. The README documents optional sign-in and cloud sync, plus settings and analytics. Paths and major capabilities are grounded in the tree and README; sampled source did not include Flutter feature implementations, so internal call ownership and detailed service wiring cannot be verified.
Main entry points: home Home · bootstrap.dart App bootstrap · presentation Problem catalogue · data Practice state
Components 19
App experience
- App bootstrap
lib/bootstrap.dart - Onboarding
lib/features/onboarding - Home
lib/features/home
Algorithm visualizers
- Sorting visualizer
lib/features/visualize/view/sub_view/sorting - Pathfinding visualizer
lib/features/visualize/view/sub_view/searching
Coding practice
- Problem catalogue
lib/features/challenge/presentation - Problem definitions
assets/problems.json - Code editor
lib/core/custom_packages/custom_code_editor - Code execution
lib/core/custom_packages/custom_code_editor/src/execution - Test-case grading
lib/core/custom_packages/custom_code_editor/src/testcase - Practice state
lib/features/challenge/data
Progress and preferences
- Progress profile
lib/features/profile - Settings
lib/features/settings - Device storage
lib/core/storage
Optional cloud services
- Authentication
lib/features/auth - Progress sync
lib/features/challenge/presentation/view_model/sync - Crash and analytics
lib/core/monitoring
Other components
- Learner
- Firebase services
Connections 22
- Learner → App bootstrap: opens app
- App bootstrap → Onboarding: starts
- Onboarding → Home: continues to
- Home → Sorting visualizer: opens
- Home → Pathfinding visualizer: opens
- Home → Problem catalogue: opens
- Problem catalogue → Problem definitions: loads problems
- Problem catalogue → Code editor: opens problem
- Code editor → Code execution: runs code
- Code execution → Test-case grading: produces results
- Test-case grading → Practice state: records outcome
- Practice state → Progress profile: supplies progress
- Home → Progress profile: opens
- Home → Settings: opens
- Progress profile → Device storage: reads activity
- Practice state → Device storage: persists progress
- Learner → Authentication: signs in optionally
- Authentication → Firebase services: authenticates
- Learner → Progress sync: requests sync
- Progress sync → Firebase services: syncs progress
- App bootstrap → Crash and analytics: enables optionally
- Crash and analytics → Firebase services: sends reports