A TUI application that teaches coding fundamentals and allows practice of coding essentials.
- Lesson files organized in folders for easy updates
- Exercise progress saved by language/framework, section, and lesson
- Embedded Neovim instance for code editing
- Mouse input support
- Responsive terminal UI with navigation shortcuts
- Progress tracking with markdown reports
- Code solutions available on demand
- Language/Framework Fundamentals: Comprehensive coverage of core concepts (As much as needed to cover what the Language/Framework Documentation Covers)
- 10 Levels of Exercises: Progressive coding challenges from beginner to advanced
- 10 Exercises
- 10 Real World Project Essential Snippets: Practical code patterns used by professionals
- 10 Real World Project Exercises: Complete mini-projects with real-world application
- Ruby
- Python
- Rust
- JavaScript
- CSS
- Rails (Ruby web framework)
- Django (Python web framework)
- Django REST Framework (Python API framework)
- Svelte (JavaScript frontend framework)
- Tailwind CSS (Utility-first CSS framework)
For each language/framework, organized into four main sections:
- Comprehensive textbook-style lessons covering core concepts
- Interactive code examples and exercises
- Code solutions available on demand
- No code execution - focus on learning concepts
- Progressive difficulty from beginner to advanced
- Algorithmic problems and coding challenges
- Users set up their own development environment
- Solutions provided for reference
- Practical code patterns used in professional development
- Common utilities, helpers, and best practices
- Real-world application examples
- Users implement in their own environment
- Complete mini-projects with real-world application
- Build functional applications using learned concepts
- Project checklists for tracking progress
- Comprehensive solutions provided
Inspired by gtypist and OpenCode TUI interfaces:
- Startup: User enters their name
- Language Selection: Choose from available languages/frameworks
- Section Selection: Pick Fundamentals, Levels, Snippets, or Projects
- Lesson Selection: Browse available lessons/exercises
- Learning Interface:
- Top Panel: Lesson title, description/problem statement, session timer
- Bottom Panel: Neovim editor for code writing (checklists for projects)
- Controls: Navigation shortcuts, complete/finish buttons
- Navigation: Mouse input + keyboard shortcuts (j/k for navigation, Enter to select)
- Code Persistence: Code saved only during session; progress persists across sessions
- Progress Tracking: Markdown report files with checklists (e.g., "Progress Report - Username.md")
- Timer: Tracks total session time
- Editor: Embedded Neovim for advanced code editing
- Platform: Linux/macOS/Windows (terminal-based)
- Rust (latest stable)
- Neovim (for embedded editor)
- Terminal with mouse support
git clone https://github.com/yourusername/coding-practice.git
cd coding-practice
cargo build --release./target/release/coding_practiceor
cargo runMIT License - see LICENSE file for details
