An AI-powered learning platform for mastering programming languages in a relaxed, focused environment.
Learn and Practice Coding is a modern web application that helps you learn programming through AI-generated, personalized lessons. Built with a dark, calming interface featuring warm orange accents, it creates the perfect atmosphere for focused learning sessions.
- π― 9 Programming Languages - JavaScript, Python, SQL, Rust, TypeScript, Kotlin, Java, Go, HTML/CSS
- π€ AI-Powered Lessons - Personalized content generated by Google's Gemini API
- π¨ Relaxing Dark UI - Warm orange glowing outlines reduce eye strain
- π» Interactive Code Terminal - Practice with syntax-highlighted code examples
- π Structured Topics - Curated learning paths for each language
- π₯ Focused Learning - Distraction-free interface designed for concentration
- Node.js (v16 or higher)
- Google Gemini API Key (Get one here)
# Clone the repository
git clone https://github.com/yourusername/learn-and-practice-coding.git
cd learn-and-practice-coding
# Install dependencies
npm install
# Create environment file
echo "VITE_GEMINI_API_KEY=your_api_key_here" > .env.local
# Start development server
npm run devThe app will be available at http://localhost:3001
Select from 9 programming languages to begin your learning journey.
Browse through curated topics specific to your chosen language.
Click "Begin Learning Journey" to generate a personalized AI lesson.
Read through the AI-generated content, practice with code examples, and master the topic at your own pace.
The UI is carefully crafted to create a relaxed, focused learning environment:
- Dark Background - Reduces eye strain during extended study sessions
- Warm Orange Accents - Creates a cozy, inviting atmosphere
- Soft Animations - Gentle pulsing effects promote calmness
- Generous Spacing - Prevents visual clutter and cognitive overload
- Glassmorphism - Modern frosted glass effects add depth
- Variables and Data Types
- Functions and Scope
- Asynchronous JavaScript
- DOM Manipulation
- ES6 Modules
- Understanding 'this'
- Basic Data Types
- Lists and Dictionaries
- Loops and Conditionals
- Object-Oriented Programming
- Virtual Environments
- File I/O Operations
- SELECT and FROM Basics
- WHERE Clauses
- JOINs
- Aggregate Functions
- Indexes and Performance
- Window Functions
- Ownership and Borrowing
- Structs and Enums
- Error Handling
- Cargo and Crates
- Traits
- Concurrency
- TypeScript vs JavaScript
- Basic Types
- Interfaces
- Generics
- Kotlin Basics
- Null Safety
- Functions and Lambdas
- Coroutines
- JVM Introduction
- Classes and Objects
- Inheritance
- Collections Framework
- Packages and Imports
- Structs and Methods
- Goroutines
- Channels
- HTML Document Structure
- CSS Selectors
- Box Model
- Flexbox Layout
- Frontend: React 18 + TypeScript
- Build Tool: Vite
- Styling: Tailwind CSS
- AI: Google Gemini API
- Storage: LocalStorage for data persistence
learn-and-practice-coding/
βββ components/ # React components
β βββ Header.tsx # App header with logo
β βββ LessonSelector.tsx # Language/topic selection
β βββ LessonDisplay.tsx # Lesson content display
β βββ CodeTerminal.tsx # Interactive code viewer
β βββ Footer.tsx # App footer
βββ data/
β βββ lessons.ts # Language and topic definitions
βββ services/
β βββ geminiService.ts # AI lesson generation
β βββ languagesService.ts # Data persistence
βββ screenshots/ # UI screenshots
βββ App.tsx # Main application
βββ types.ts # TypeScript interfaces
βββ index.html # Entry point
Create a .env.local file in the project root:
VITE_GEMINI_API_KEY=your_gemini_api_key_hereYou can customize the app by editing:
data/lessons.ts- Add/modify languages and topicstailwind.config.js- Adjust colors and stylingservices/geminiService.ts- Modify AI prompts
# Create production build
npm run build
# Preview production build
npm run previewThe build output will be in the dist/ directory.
Contributions are welcome! Please feel free to submit a Pull Request.
- Fork the repository
- Create your feature branch (
git checkout -b feature/AmazingFeature) - Commit your changes (
git commit -m 'Add some AmazingFeature') - Push to the branch (
git push origin feature/AmazingFeature) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
- Google Gemini - For providing the AI API
- Tailwind CSS - For the utility-first CSS framework
- React Team - For the amazing framework
- Vite - For the lightning-fast build tool
Have questions or suggestions? Feel free to reach out!
Built with β€οΈ for learners who value a peaceful, focused environment
π₯ Start your coding journey today!


