Skip to content

nicocodeevo-ux/learn_and_practice_coding

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

11 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Learn and Practice Coding

An AI-powered learning platform for mastering programming languages in a relaxed, focused environment.

Learn and Practice Coding

🌟 Overview

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.

✨ Features

  • 🎯 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

πŸš€ Quick Start

Prerequisites

  • Node.js (v16 or higher)
  • Google Gemini API Key (Get one here)

Installation

# 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 dev

The app will be available at http://localhost:3001

πŸ“– How to Use

1. Choose Your Language

Select from 9 programming languages to begin your learning journey.

Select Language

2. Pick a Topic

Browse through curated topics specific to your chosen language.

3. Generate Your Lesson

Click "Begin Learning Journey" to generate a personalized AI lesson.

Ready to Learn

4. Practice and Learn

Read through the AI-generated content, practice with code examples, and master the topic at your own pace.

🎨 Design Philosophy

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

πŸ“š Supported Languages & Topics

JavaScript

  • Variables and Data Types
  • Functions and Scope
  • Asynchronous JavaScript
  • DOM Manipulation
  • ES6 Modules
  • Understanding 'this'

Python

  • Basic Data Types
  • Lists and Dictionaries
  • Loops and Conditionals
  • Object-Oriented Programming
  • Virtual Environments
  • File I/O Operations

SQL

  • SELECT and FROM Basics
  • WHERE Clauses
  • JOINs
  • Aggregate Functions
  • Indexes and Performance
  • Window Functions

Rust

  • Ownership and Borrowing
  • Structs and Enums
  • Error Handling
  • Cargo and Crates
  • Traits
  • Concurrency

TypeScript

  • TypeScript vs JavaScript
  • Basic Types
  • Interfaces
  • Generics

Kotlin

  • Kotlin Basics
  • Null Safety
  • Functions and Lambdas
  • Coroutines

Java

  • JVM Introduction
  • Classes and Objects
  • Inheritance
  • Collections Framework

Go (Golang)

  • Packages and Imports
  • Structs and Methods
  • Goroutines
  • Channels

HTML & CSS

  • HTML Document Structure
  • CSS Selectors
  • Box Model
  • Flexbox Layout

πŸ› οΈ Tech Stack

  • Frontend: React 18 + TypeScript
  • Build Tool: Vite
  • Styling: Tailwind CSS
  • AI: Google Gemini API
  • Storage: LocalStorage for data persistence

πŸ“ Project Structure

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

πŸ”§ Configuration

Environment Variables

Create a .env.local file in the project root:

VITE_GEMINI_API_KEY=your_gemini_api_key_here

Customization

You can customize the app by editing:

  • data/lessons.ts - Add/modify languages and topics
  • tailwind.config.js - Adjust colors and styling
  • services/geminiService.ts - Modify AI prompts

πŸš€ Building for Production

# Create production build
npm run build

# Preview production build
npm run preview

The build output will be in the dist/ directory.

🀝 Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

  1. Fork the repository
  2. Create your feature branch (git checkout -b feature/AmazingFeature)
  3. Commit your changes (git commit -m 'Add some AmazingFeature')
  4. Push to the branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

πŸ“ License

This project is licensed under the MIT License - see the LICENSE file for details.

πŸ™ Acknowledgments

  • 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

πŸ“§ Contact

Have questions or suggestions? Feel free to reach out!


Built with ❀️ for learners who value a peaceful, focused environment

πŸ”₯ Start your coding journey today!

About

No description, website, or topics provided.

Resources

License

Code of conduct

Contributing

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published