[
  {
    "id": "react-counter",
    "title": "React Counter Component",
    "description": "A simple counter with increment/decrement buttons and reset functionality",
    "language": "TSX",
    "category": "react",
    "hasPreview": true,
    "functionName": "Counter",
    "code": "import { useState } from 'react'\nimport { Button } from '@/components/ui/button'\nimport { Card, CardContent, CardHeader, CardTitle } from '@/components/ui/card'\nimport { Plus, Minus, ArrowCounterClockwise } from '@phosphor-icons/react'\n\nfunction Counter() {\n  const [count, setCount] = useState(0)\n\n  return (\n    <Card className=\"w-full max-w-sm\">\n      <CardHeader>\n        <CardTitle className=\"text-center\">Counter</CardTitle>\n      </CardHeader>\n      <CardContent className=\"space-y-4\">\n        <div className=\"text-6xl font-bold text-center text-primary\">\n          {count}\n        </div>\n        <div className=\"flex gap-2 justify-center\">\n          <Button\n            onClick={() => setCount((prev) => prev - 1)}\n            variant=\"outline\"\n            size=\"lg\"\n            className=\"gap-2\"\n          >\n            <Minus weight=\"bold\" />\n            Decrement\n          </Button>\n          <Button\n            onClick={() => setCount((prev) => prev + 1)}\n            size=\"lg\"\n            className=\"gap-2\"\n          >\n            <Plus weight=\"bold\" />\n            Increment\n          </Button>\n        </div>\n        <Button\n          onClick={() => setCount(0)}\n          variant=\"ghost\"\n          className=\"w-full gap-2\"\n        >\n          <ArrowCounterClockwise />\n          Reset\n        </Button>\n      </CardContent>\n    </Card>\n  )\n}\n\nexport default Counter"
  },
  {
    "id": "react-form",
    "title": "React Form with Validation",
    "description": "Contact form with email validation and submit handling",
    "language": "TSX",
    "category": "react",
    "hasPreview": true,
    "functionName": "ContactForm",
    "code": "import { useState } from 'react'\nimport { Button } from '@/components/ui/button'\nimport { Input } from '@/components/ui/input'\nimport { Label } from '@/components/ui/label'\nimport { Textarea } from '@/components/ui/textarea'\nimport { Card, CardContent, CardDescription, CardHeader, CardTitle } from '@/components/ui/card'\nimport { PaperPlaneRight } from '@phosphor-icons/react'\n\nfunction ContactForm() {\n  const [formData, setFormData] = useState({\n    name: '',\n    email: '',\n    message: ''\n  })\n  const [errors, setErrors] = useState<Record<string, string>>({})\n  const [submitted, setSubmitted] = useState(false)\n\n  const validateEmail = (email: string) => {\n    return /^[^\\s@]+@[^\\s@]+\\.[^\\s@]+$/.test(email)\n  }\n\n  const handleSubmit = (e: React.FormEvent) => {\n    e.preventDefault()\n    const newErrors: Record<string, string> = {}\n\n    if (!formData.name.trim()) {\n      newErrors.name = 'Name is required'\n    }\n    if (!formData.email.trim()) {\n      newErrors.email = 'Email is required'\n    } else if (!validateEmail(formData.email)) {\n      newErrors.email = 'Invalid email format'\n    }\n    if (!formData.message.trim()) {\n      newErrors.message = 'Message is required'\n    }\n\n    if (Object.keys(newErrors).length > 0) {\n      setErrors(newErrors)\n      return\n    }\n\n    setSubmitted(true)\n    setErrors({})\n  }\n\n  const handleChange = (field: string, value: string) => {\n    setFormData((prev) => ({ ...prev, [field]: value }))\n    if (errors[field]) {\n      setErrors((prev) => ({ ...prev, [field]: '' }))\n    }\n  }\n\n  if (submitted) {\n    return (\n      <Card className=\"w-full max-w-md\">\n        <CardContent className=\"pt-6 text-center space-y-4\">\n          <div className=\"text-6xl\">✓</div>\n          <div>\n            <h3 className=\"text-xl font-semibold mb-2\">Message Sent!</h3>\n            <p className=\"text-muted-foreground\">We'll get back to you soon.</p>\n          </div>\n          <Button onClick={() => {\n            setSubmitted(false)\n            setFormData({ name: '', email: '', message: '' })\n          }}>Send Another</Button>\n        </CardContent>\n      </Card>\n    )\n  }\n\n  return (\n    <Card className=\"w-full max-w-md\">\n      <CardHeader>\n        <CardTitle>Contact Us</CardTitle>\n        <CardDescription>Send us a message and we'll respond shortly</CardDescription>\n      </CardHeader>\n      <CardContent>\n        <form onSubmit={handleSubmit} className=\"space-y-4\">\n          <div className=\"space-y-2\">\n            <Label htmlFor=\"name\">Name *</Label>\n            <Input\n              id=\"name\"\n              value={formData.name}\n              onChange={(e) => handleChange('name', e.target.value)}\n              className={errors.name ? 'border-destructive' : ''}\n            />\n            {errors.name && (\n              <p className=\"text-sm text-destructive\">{errors.name}</p>\n            )}\n          </div>\n          <div className=\"space-y-2\">\n            <Label htmlFor=\"email\">Email *</Label>\n            <Input\n              id=\"email\"\n              type=\"email\"\n              value={formData.email}\n              onChange={(e) => handleChange('email', e.target.value)}\n              className={errors.email ? 'border-destructive' : ''}\n            />\n            {errors.email && (\n              <p className=\"text-sm text-destructive\">{errors.email}</p>\n            )}\n          </div>\n          <div className=\"space-y-2\">\n            <Label htmlFor=\"message\">Message *</Label>\n            <Textarea\n              id=\"message\"\n              value={formData.message}\n              onChange={(e) => handleChange('message', e.target.value)}\n              rows={4}\n              className={errors.message ? 'border-destructive' : ''}\n            />\n            {errors.message && (\n              <p className=\"text-sm text-destructive\">{errors.message}</p>\n            )}\n          </div>\n          <Button type=\"submit\" className=\"w-full gap-2\">\n            <PaperPlaneRight weight=\"bold\" />\n            Send Message\n          </Button>\n        </form>\n      </CardContent>\n    </Card>\n  )\n}\n\nexport default ContactForm"
  },
  {
    "id": "react-todo",
    "title": "React Todo List",
    "description": "Interactive todo list with add, complete, and delete functionality",
    "language": "TSX",
    "category": "react",
    "hasPreview": true,
    "functionName": "TodoList",
    "code": "import { useState } from 'react'\nimport { Button } from '@/components/ui/button'\nimport { Input } from '@/components/ui/input'\nimport { Checkbox } from '@/components/ui/checkbox'\nimport { Card, CardContent, CardHeader, CardTitle } from '@/components/ui/card'\nimport { Plus, Trash } from '@phosphor-icons/react'\n\ninterface Todo {\n  id: number\n  text: string\n  completed: boolean\n}\n\nfunction TodoList() {\n  const [todos, setTodos] = useState<Todo[]>([])\n  const [inputValue, setInputValue] = useState('')\n\n  const addTodo = () => {\n    if (inputValue.trim()) {\n      setTodos((prev) => [\n        ...prev,\n        { id: Date.now(), text: inputValue.trim(), completed: false }\n      ])\n      setInputValue('')\n    }\n  }\n\n  const toggleTodo = (id: number) => {\n    setTodos((prev) =>\n      prev.map((todo) =>\n        todo.id === id ? { ...todo, completed: !todo.completed } : todo\n      )\n    )\n  }\n\n  const deleteTodo = (id: number) => {\n    setTodos((prev) => prev.filter((todo) => todo.id !== id))\n  }\n\n  return (\n    <Card className=\"w-full max-w-md\">\n      <CardHeader>\n        <CardTitle>Todo List</CardTitle>\n      </CardHeader>\n      <CardContent className=\"space-y-4\">\n        <div className=\"flex gap-2\">\n          <Input\n            placeholder=\"Add a new todo...\"\n            value={inputValue}\n            onChange={(e) => setInputValue(e.target.value)}\n            onKeyPress={(e) => e.key === 'Enter' && addTodo()}\n          />\n          <Button onClick={addTodo} size=\"icon\">\n            <Plus weight=\"bold\" />\n          </Button>\n        </div>\n        {todos.length === 0 ? (\n          <p className=\"text-center text-muted-foreground py-8\">\n            No todos yet. Add one above!\n          </p>\n        ) : (\n          <div className=\"space-y-2\">\n            {todos.map((todo) => (\n              <div\n                key={todo.id}\n                className=\"flex items-center gap-3 p-3 rounded-lg border bg-card hover:bg-accent/50 transition-colors\"\n              >\n                <Checkbox\n                  checked={todo.completed}\n                  onCheckedChange={() => toggleTodo(todo.id)}\n                />\n                <span\n                  className={`flex-1 ${todo.completed ? 'line-through text-muted-foreground' : ''}`}\n                >\n                  {todo.text}\n                </span>\n                <Button\n                  variant=\"ghost\"\n                  size=\"sm\"\n                  onClick={() => deleteTodo(todo.id)}\n                  className=\"text-destructive hover:text-destructive\"\n                >\n                  <Trash />\n                </Button>\n              </div>\n            ))}\n          </div>\n        )}\n        {todos.length > 0 && (\n          <div className=\"text-sm text-muted-foreground text-center pt-2\">\n            {todos.filter((t) => !t.completed).length} of {todos.length} remaining\n          </div>\n        )}\n      </CardContent>\n    </Card>\n  )\n}\n\nexport default TodoList"
  },
  {
    "id": "react-tabs",
    "title": "React Tabs Component",
    "description": "Tabbed interface showing different content panels",
    "language": "TSX",
    "category": "react",
    "hasPreview": true,
    "functionName": "TabsDemo",
    "code": "import { Tabs, TabsContent, TabsList, TabsTrigger } from '@/components/ui/tabs'\nimport { Card, CardContent, CardDescription, CardHeader, CardTitle } from '@/components/ui/card'\nimport { User, Gear, Bell } from '@phosphor-icons/react'\n\nfunction TabsDemo() {\n  return (\n    <div className=\"w-full max-w-2xl\">\n      <Tabs defaultValue=\"account\" className=\"w-full\">\n        <TabsList className=\"grid w-full grid-cols-3\">\n          <TabsTrigger value=\"account\" className=\"gap-2\">\n            <User weight=\"bold\" />\n            Account\n          </TabsTrigger>\n          <TabsTrigger value=\"settings\" className=\"gap-2\">\n            <Gear weight=\"bold\" />\n            Settings\n          </TabsTrigger>\n          <TabsTrigger value=\"notifications\" className=\"gap-2\">\n            <Bell weight=\"bold\" />\n            Notifications\n          </TabsTrigger>\n        </TabsList>\n        <TabsContent value=\"account\">\n          <Card>\n            <CardHeader>\n              <CardTitle>Account Information</CardTitle>\n              <CardDescription>\n                View and manage your account details\n              </CardDescription>\n            </CardHeader>\n            <CardContent className=\"space-y-2\">\n              <div className=\"space-y-1\">\n                <h4 className=\"text-sm font-medium\">Username</h4>\n                <p className=\"text-sm text-muted-foreground\">john.doe@example.com</p>\n              </div>\n              <div className=\"space-y-1\">\n                <h4 className=\"text-sm font-medium\">Member Since</h4>\n                <p className=\"text-sm text-muted-foreground\">January 2024</p>\n              </div>\n            </CardContent>\n          </Card>\n        </TabsContent>\n        <TabsContent value=\"settings\">\n          <Card>\n            <CardHeader>\n              <CardTitle>Settings</CardTitle>\n              <CardDescription>\n                Configure your preferences and options\n              </CardDescription>\n            </CardHeader>\n            <CardContent className=\"space-y-4\">\n              <div className=\"flex items-center justify-between\">\n                <div>\n                  <h4 className=\"text-sm font-medium\">Email Notifications</h4>\n                  <p className=\"text-sm text-muted-foreground\">Receive email updates</p>\n                </div>\n                <input type=\"checkbox\" defaultChecked />\n              </div>\n              <div className=\"flex items-center justify-between\">\n                <div>\n                  <h4 className=\"text-sm font-medium\">Two-Factor Auth</h4>\n                  <p className=\"text-sm text-muted-foreground\">Extra security layer</p>\n                </div>\n                <input type=\"checkbox\" />\n              </div>\n            </CardContent>\n          </Card>\n        </TabsContent>\n        <TabsContent value=\"notifications\">\n          <Card>\n            <CardHeader>\n              <CardTitle>Notifications</CardTitle>\n              <CardDescription>\n                Your recent notifications and alerts\n              </CardDescription>\n            </CardHeader>\n            <CardContent>\n              <div className=\"space-y-4\">\n                <div className=\"flex items-start gap-3 p-3 rounded-lg bg-muted/50\">\n                  <Bell className=\"text-primary mt-1\" weight=\"fill\" />\n                  <div>\n                    <p className=\"text-sm font-medium\">Welcome!</p>\n                    <p className=\"text-sm text-muted-foreground\">\n                      Thanks for joining our platform\n                    </p>\n                    <p className=\"text-xs text-muted-foreground mt-1\">2 hours ago</p>\n                  </div>\n                </div>\n              </div>\n            </CardContent>\n          </Card>\n        </TabsContent>\n      </Tabs>\n    </div>\n  )\n}\n\nexport default TabsDemo"
  },
  {
    "id": "react-accordion",
    "title": "React Accordion Component",
    "description": "Collapsible FAQ accordion with smooth animations",
    "language": "TSX",
    "category": "react",
    "hasPreview": true,
    "functionName": "FAQAccordion",
    "code": "import {\n  Accordion,\n  AccordionContent,\n  AccordionItem,\n  AccordionTrigger,\n} from '@/components/ui/accordion'\nimport { Card, CardContent, CardHeader, CardTitle } from '@/components/ui/card'\n\nfunction FAQAccordion() {\n  return (\n    <Card className=\"w-full max-w-2xl\">\n      <CardHeader>\n        <CardTitle>Frequently Asked Questions</CardTitle>\n      </CardHeader>\n      <CardContent>\n        <Accordion type=\"single\" collapsible className=\"w-full\">\n          <AccordionItem value=\"item-1\">\n            <AccordionTrigger>What is React?</AccordionTrigger>\n            <AccordionContent>\n              React is a JavaScript library for building user interfaces,\n              particularly single-page applications. It allows developers to\n              create reusable UI components and manage the state of their\n              applications efficiently.\n            </AccordionContent>\n          </AccordionItem>\n          <AccordionItem value=\"item-2\">\n            <AccordionTrigger>How do I get started?</AccordionTrigger>\n            <AccordionContent>\n              Getting started is easy! You can begin by installing Node.js,\n              then use Create React App or Vite to scaffold a new project.\n              Follow the official React documentation for step-by-step\n              tutorials and guides.\n            </AccordionContent>\n          </AccordionItem>\n          <AccordionItem value=\"item-3\">\n            <AccordionTrigger>Is it accessible?</AccordionTrigger>\n            <AccordionContent>\n              Yes, when built correctly, React applications can be fully\n              accessible. It's important to use semantic HTML, ARIA attributes,\n              and test your application with screen readers and keyboard\n              navigation.\n            </AccordionContent>\n          </AccordionItem>\n          <AccordionItem value=\"item-4\">\n            <AccordionTrigger>Can I use it with TypeScript?</AccordionTrigger>\n            <AccordionContent>\n              Absolutely! React has excellent TypeScript support. TypeScript\n              adds static typing to JavaScript, which helps catch errors early\n              and improves code quality. Many modern React projects use\n              TypeScript as the default.\n            </AccordionContent>\n          </AccordionItem>\n        </Accordion>\n      </CardContent>\n    </Card>\n  )\n}\n\nexport default FAQAccordion"
  },
  {
    "id": "react-modal",
    "title": "React Modal Dialog",
    "description": "Interactive modal with open/close animations",
    "language": "TSX",
    "category": "react",
    "hasPreview": true,
    "functionName": "ModalDemo",
    "code": "import { useState } from 'react'\nimport { Button } from '@/components/ui/button'\nimport {\n  Dialog,\n  DialogContent,\n  DialogDescription,\n  DialogFooter,\n  DialogHeader,\n  DialogTitle,\n  DialogTrigger,\n} from '@/components/ui/dialog'\nimport { Input } from '@/components/ui/input'\nimport { Label } from '@/components/ui/label'\nimport { Card, CardContent } from '@/components/ui/card'\n\nfunction ModalDemo() {\n  const [name, setName] = useState('')\n  const [savedName, setSavedName] = useState('')\n\n  const handleSave = () => {\n    setSavedName(name)\n    setName('')\n  }\n\n  return (\n    <Card className=\"w-full max-w-md\">\n      <CardContent className=\"pt-6 space-y-4\">\n        <div className=\"text-center space-y-2\">\n          <h3 className=\"text-xl font-semibold\">Modal Dialog Demo</h3>\n          <p className=\"text-muted-foreground\">\n            Click the button below to open a modal\n          </p>\n        </div>\n        {savedName && (\n          <div className=\"p-4 rounded-lg bg-primary/10 border border-primary/20\">\n            <p className=\"text-sm font-medium\">Saved Name:</p>\n            <p className=\"text-lg font-bold text-primary\">{savedName}</p>\n          </div>\n        )}\n        <Dialog>\n          <DialogTrigger asChild>\n            <Button className=\"w-full\">Open Dialog</Button>\n          </DialogTrigger>\n          <DialogContent className=\"sm:max-w-[425px]\">\n            <DialogHeader>\n              <DialogTitle>Edit Profile</DialogTitle>\n              <DialogDescription>\n                Make changes to your profile here. Click save when you're done.\n              </DialogDescription>\n            </DialogHeader>\n            <div className=\"grid gap-4 py-4\">\n              <div className=\"grid grid-cols-4 items-center gap-4\">\n                <Label htmlFor=\"name\" className=\"text-right\">\n                  Name\n                </Label>\n                <Input\n                  id=\"name\"\n                  value={name}\n                  onChange={(e) => setName(e.target.value)}\n                  className=\"col-span-3\"\n                  placeholder=\"Enter your name\"\n                />\n              </div>\n            </div>\n            <DialogFooter>\n              <Button type=\"submit\" onClick={handleSave}>\n                Save changes\n              </Button>\n            </DialogFooter>\n          </DialogContent>\n        </Dialog>\n      </CardContent>\n    </Card>\n  )\n}\n\nexport default ModalDemo"
  },
  {
    "id": "react-search",
    "title": "React Search Filter",
    "description": "Real-time search and filter through a list of items",
    "language": "TSX",
    "category": "react",
    "hasPreview": true,
    "functionName": "SearchFilter",
    "code": "import { useState, useMemo } from 'react'\nimport { Input } from '@/components/ui/input'\nimport { Card, CardContent, CardHeader, CardTitle } from '@/components/ui/card'\nimport { Badge } from '@/components/ui/badge'\nimport { MagnifyingGlass } from '@phosphor-icons/react'\n\nconst ITEMS = [\n  { id: 1, name: 'React', category: 'Frontend', color: 'blue' },\n  { id: 2, name: 'Node.js', category: 'Backend', color: 'green' },\n  { id: 3, name: 'TypeScript', category: 'Language', color: 'blue' },\n  { id: 4, name: 'PostgreSQL', category: 'Database', color: 'blue' },\n  { id: 5, name: 'MongoDB', category: 'Database', color: 'green' },\n  { id: 6, name: 'Express', category: 'Backend', color: 'gray' },\n  { id: 7, name: 'Vue', category: 'Frontend', color: 'green' },\n  { id: 8, name: 'Python', category: 'Language', color: 'yellow' },\n  { id: 9, name: 'Django', category: 'Backend', color: 'green' },\n  { id: 10, name: 'Angular', category: 'Frontend', color: 'red' },\n]\n\nfunction SearchFilter() {\n  const [searchQuery, setSearchQuery] = useState('')\n\n  const filteredItems = useMemo(() => {\n    if (!searchQuery.trim()) return ITEMS\n    const query = searchQuery.toLowerCase()\n    return ITEMS.filter(\n      (item) =>\n        item.name.toLowerCase().includes(query) ||\n        item.category.toLowerCase().includes(query)\n    )\n  }, [searchQuery])\n\n  return (\n    <Card className=\"w-full max-w-2xl\">\n      <CardHeader>\n        <CardTitle>Search Technologies</CardTitle>\n      </CardHeader>\n      <CardContent className=\"space-y-4\">\n        <div className=\"relative\">\n          <MagnifyingGlass className=\"absolute left-3 top-1/2 -translate-y-1/2 h-5 w-5 text-muted-foreground\" />\n          <Input\n            placeholder=\"Search by name or category...\"\n            value={searchQuery}\n            onChange={(e) => setSearchQuery(e.target.value)}\n            className=\"pl-10\"\n          />\n        </div>\n        <div className=\"text-sm text-muted-foreground\">\n          Showing {filteredItems.length} of {ITEMS.length} items\n        </div>\n        {filteredItems.length === 0 ? (\n          <div className=\"text-center py-12 text-muted-foreground\">\n            No items found\n          </div>\n        ) : (\n          <div className=\"grid grid-cols-1 md:grid-cols-2 gap-3\">\n            {filteredItems.map((item) => (\n              <div\n                key={item.id}\n                className=\"flex items-center justify-between p-4 rounded-lg border bg-card hover:bg-accent/50 transition-colors\"\n              >\n                <div>\n                  <h4 className=\"font-semibold\">{item.name}</h4>\n                  <p className=\"text-sm text-muted-foreground\">\n                    {item.category}\n                  </p>\n                </div>\n                <Badge variant=\"secondary\">{item.category}</Badge>\n              </div>\n            ))}\n          </div>\n        )}\n      </CardContent>\n    </Card>\n  )\n}\n\nexport default SearchFilter"
  },
  {
    "id": "fetch-api",
    "title": "Fetch API Example",
    "description": "Making HTTP requests with async/await and error handling",
    "language": "JavaScript",
    "category": "api",
    "code": "async function fetchUserData(userId) {\n  try {\n    const response = await fetch(\n      `https://jsonplaceholder.typicode.com/users/${userId}`\n    )\n    \n    if (!response.ok) {\n      throw new Error(`HTTP error! status: ${response.status}`)\n    }\n    \n    const data = await response.json()\n    console.log('User data:', data)\n    return data\n  } catch (error) {\n    console.error('Failed to fetch user:', error)\n    throw error\n  }\n}\n\nfetchUserData(1)"
  },
  {
    "id": "array-methods",
    "title": "JavaScript Array Methods",
    "description": "Common array operations: map, filter, reduce, and find",
    "language": "JavaScript",
    "category": "basics",
    "code": "const numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]\n\nconst doubled = numbers.map(n => n * 2)\nconsole.log('Doubled:', doubled)\n\nconst evens = numbers.filter(n => n % 2 === 0)\nconsole.log('Evens:', evens)\n\nconst sum = numbers.reduce((acc, n) => acc + n, 0)\nconsole.log('Sum:', sum)\n\nconst firstBigNumber = numbers.find(n => n > 5)\nconsole.log('First > 5:', firstBigNumber)\n\nconst squared = numbers.map(n => n ** 2)\nconsole.log('Squared:', squared)"
  },
  {
    "id": "promise-chain",
    "title": "Promise Chaining",
    "description": "Handling async operations with promise chains",
    "language": "JavaScript",
    "category": "async",
    "code": "function delay(ms) {\n  return new Promise(resolve => setTimeout(resolve, ms))\n}\n\nfunction fetchUser(id) {\n  return delay(1000).then(() => ({\n    id,\n    name: 'John Doe',\n    email: 'john@example.com'\n  }))\n}\n\nfunction fetchPosts(userId) {\n  return delay(800).then(() => ([\n    { id: 1, title: 'Post 1', userId },\n    { id: 2, title: 'Post 2', userId }\n  ]))\n}\n\nfetchUser(1)\n  .then(user => {\n    console.log('User:', user)\n    return fetchPosts(user.id)\n  })\n  .then(posts => {\n    console.log('Posts:', posts)\n  })\n  .catch(error => {\n    console.error('Error:', error)\n  })"
  },
  {
    "id": "typescript-interface",
    "title": "TypeScript Interface",
    "description": "Defining typed interfaces and using them in functions",
    "language": "TypeScript",
    "category": "types",
    "code": "interface User {\n  id: number\n  name: string\n  email: string\n  role: 'admin' | 'user' | 'guest'\n  metadata?: {\n    createdAt: Date\n    lastLogin: Date\n  }\n}\n\ninterface ApiResponse<T> {\n  data: T\n  status: number\n  message: string\n}\n\nfunction getUser(id: number): ApiResponse<User> {\n  return {\n    data: {\n      id,\n      name: 'John Doe',\n      email: 'john@example.com',\n      role: 'admin',\n      metadata: {\n        createdAt: new Date(),\n        lastLogin: new Date()\n      }\n    },\n    status: 200,\n    message: 'Success'\n  }\n}\n\nconst response = getUser(1)\nconsole.log(response.data.name)"
  },
  {
    "id": "css-flexbox",
    "title": "CSS Flexbox Layout",
    "description": "Responsive flexbox layout with common patterns",
    "language": "CSS",
    "category": "layout",
    "code": ".container {\n  display: flex;\n  flex-direction: row;\n  justify-content: space-between;\n  align-items: center;\n  gap: 1rem;\n  padding: 2rem;\n}\n\n.card {\n  flex: 1;\n  min-width: 300px;\n  padding: 1.5rem;\n  border-radius: 0.5rem;\n  background: white;\n  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);\n}\n\n@media (max-width: 768px) {\n  .container {\n    flex-direction: column;\n  }\n  \n  .card {\n    width: 100%;\n  }\n}"
  },
  {
    "id": "css-grid",
    "title": "CSS Grid Layout",
    "description": "Modern grid layout with responsive columns",
    "language": "CSS",
    "category": "layout",
    "code": ".grid-container {\n  display: grid;\n  grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));\n  gap: 2rem;\n  padding: 2rem;\n}\n\n.grid-item {\n  padding: 1.5rem;\n  border-radius: 0.5rem;\n  background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);\n  color: white;\n}\n\n.featured {\n  grid-column: span 2;\n}\n\n@media (max-width: 768px) {\n  .featured {\n    grid-column: span 1;\n  }\n}"
  },
  {
    "id": "python-euler-1",
    "title": "Project Euler #1: Multiples of 3 or 5",
    "description": "Find the sum of all multiples of 3 or 5 below 1000",
    "language": "Python",
    "category": "euler",
    "hasPreview": true,
    "code": "# Project Euler Problem 1\n# Find the sum of all multiples of 3 or 5 below 1000\n\ndef solve_euler_1(limit=1000):\n    total = 0\n    for i in range(limit):\n        if i % 3 == 0 or i % 5 == 0:\n            total += i\n    return total\n\nresult = solve_euler_1(1000)\nprint(f\"The sum of all multiples of 3 or 5 below 1000 is: {result}\")\n\n# More efficient solution using arithmetic series\ndef solve_euler_1_optimized(limit=1000):\n    def sum_divisible_by(n):\n        p = (limit - 1) // n\n        return n * p * (p + 1) // 2\n    \n    return sum_divisible_by(3) + sum_divisible_by(5) - sum_divisible_by(15)\n\nresult_optimized = solve_euler_1_optimized(1000)\nprint(f\"Optimized solution: {result_optimized}\")"
  },
  {
    "id": "python-euler-2",
    "title": "Project Euler #2: Even Fibonacci Numbers",
    "description": "Find the sum of even-valued Fibonacci numbers not exceeding 4 million",
    "language": "Python",
    "category": "euler",
    "hasPreview": true,
    "code": "# Project Euler Problem 2\n# Find the sum of even-valued Fibonacci numbers not exceeding 4 million\n\ndef solve_euler_2(limit=4_000_000):\n    a, b = 1, 2\n    total = 0\n    \n    while a <= limit:\n        if a % 2 == 0:\n            total += a\n        a, b = b, a + b\n    \n    return total\n\nresult = solve_euler_2(4_000_000)\nprint(f\"The sum of even Fibonacci numbers not exceeding 4 million is: {result}\")\n\n# Show the first few even Fibonacci numbers\nprint(\"\\nFirst 10 even Fibonacci numbers:\")\na, b = 1, 2\ncount = 0\nwhile count < 10:\n    if a % 2 == 0:\n        print(f\"  {count + 1}. {a}\")\n        count += 1\n    a, b = b, a + b"
  },
  {
    "id": "python-euler-6",
    "title": "Project Euler #6: Sum Square Difference",
    "description": "Find the difference between sum of squares and square of sum",
    "language": "Python",
    "category": "euler",
    "hasPreview": true,
    "code": "# Project Euler Problem 6\n# Find the difference between the sum of the squares of the first 100 natural numbers\n# and the square of the sum\n\ndef solve_euler_6(n=100):\n    # Sum of squares: 1^2 + 2^2 + ... + n^2\n    sum_of_squares = sum(i**2 for i in range(1, n + 1))\n    \n    # Square of sum: (1 + 2 + ... + n)^2\n    square_of_sum = sum(range(1, n + 1)) ** 2\n    \n    difference = square_of_sum - sum_of_squares\n    \n    return sum_of_squares, square_of_sum, difference\n\nsum_sq, sq_sum, diff = solve_euler_6(100)\nprint(f\"Sum of squares (1² + 2² + ... + 100²) = {sum_sq}\")\nprint(f\"Square of sum (1 + 2 + ... + 100)² = {sq_sum}\")\nprint(f\"Difference = {diff}\")\n\n# Using mathematical formulas for efficiency\ndef solve_euler_6_optimized(n=100):\n    # Formula: sum of squares = n(n+1)(2n+1)/6\n    sum_of_squares = n * (n + 1) * (2 * n + 1) // 6\n    \n    # Formula: sum = n(n+1)/2, so square of sum = [n(n+1)/2]^2\n    square_of_sum = (n * (n + 1) // 2) ** 2\n    \n    return square_of_sum - sum_of_squares\n\nprint(f\"\\nOptimized solution: {solve_euler_6_optimized(100)}\")"
  },
  {
    "id": "python-fibonacci",
    "title": "Fibonacci Sequence Generator",
    "description": "Generate Fibonacci numbers using different approaches",
    "language": "Python",
    "category": "algorithms",
    "hasPreview": true,
    "code": "# Generate Fibonacci sequence using different methods\n\n# Method 1: Iterative\ndef fibonacci_iterative(n):\n    if n <= 0:\n        return []\n    elif n == 1:\n        return [0]\n    \n    fib = [0, 1]\n    for i in range(2, n):\n        fib.append(fib[i-1] + fib[i-2])\n    return fib\n\nprint(\"First 15 Fibonacci numbers (iterative):\")\nprint(fibonacci_iterative(15))\n\n# Method 2: Generator (memory efficient)\ndef fibonacci_generator(n):\n    a, b = 0, 1\n    count = 0\n    while count < n:\n        yield a\n        a, b = b, a + b\n        count += 1\n\nprint(\"\\nFirst 15 Fibonacci numbers (generator):\")\nprint(list(fibonacci_generator(15)))\n\n# Method 3: Recursive (with memoization)\ndef fibonacci_recursive(n, memo={}):\n    if n in memo:\n        return memo[n]\n    if n <= 1:\n        return n\n    memo[n] = fibonacci_recursive(n-1, memo) + fibonacci_recursive(n-2, memo)\n    return memo[n]\n\nprint(\"\\n20th Fibonacci number (recursive with memoization):\")\nprint(fibonacci_recursive(20))"
  },
  {
    "id": "python-prime-numbers",
    "title": "Prime Number Generator",
    "description": "Find prime numbers using the Sieve of Eratosthenes",
    "language": "Python",
    "category": "algorithms",
    "hasPreview": true,
    "code": "# Prime number algorithms\n\n# Method 1: Simple prime checker\ndef is_prime(n):\n    if n < 2:\n        return False\n    if n == 2:\n        return True\n    if n % 2 == 0:\n        return False\n    \n    # Check odd divisors up to sqrt(n)\n    i = 3\n    while i * i <= n:\n        if n % i == 0:\n            return False\n        i += 2\n    return True\n\nprint(\"Prime numbers up to 50:\")\nprimes = [n for n in range(2, 51) if is_prime(n)]\nprint(primes)\n\n# Method 2: Sieve of Eratosthenes (efficient for finding many primes)\ndef sieve_of_eratosthenes(limit):\n    if limit < 2:\n        return []\n    \n    # Create a boolean array and initialize all as true\n    is_prime = [True] * (limit + 1)\n    is_prime[0] = is_prime[1] = False\n    \n    p = 2\n    while p * p <= limit:\n        if is_prime[p]:\n            # Mark all multiples of p as not prime\n            for i in range(p * p, limit + 1, p):\n                is_prime[i] = False\n        p += 1\n    \n    return [i for i in range(limit + 1) if is_prime[i]]\n\nprint(\"\\nFirst 25 primes using Sieve:\")\nall_primes = sieve_of_eratosthenes(100)\nprint(all_primes[:25])\nprint(f\"\\nTotal primes up to 100: {len(all_primes)}\")"
  },
  {
    "id": "python-data-structures",
    "title": "Python Data Structures Demo",
    "description": "Working with lists, dictionaries, sets, and tuples",
    "language": "Python",
    "category": "basics",
    "hasPreview": true,
    "code": "# Python data structures examples\n\n# Lists (mutable, ordered)\nfruits = ['apple', 'banana', 'cherry', 'date']\nprint(\"Lists:\")\nprint(f\"  Original: {fruits}\")\nfruits.append('elderberry')\nprint(f\"  After append: {fruits}\")\nprint(f\"  Second item: {fruits[1]}\")\n\n# Dictionaries (key-value pairs)\nperson = {\n    'name': 'Alice',\n    'age': 30,\n    'city': 'New York',\n    'hobbies': ['reading', 'coding', 'hiking']\n}\nprint(\"\\nDictionaries:\")\nprint(f\"  Person: {person}\")\nprint(f\"  Name: {person['name']}\")\nprint(f\"  Hobbies: {', '.join(person['hobbies'])}\")\n\n# Sets (unique, unordered)\nnumbers = {1, 2, 3, 4, 5, 3, 2, 1}\nprint(\"\\nSets (duplicates removed):\")\nprint(f\"  Numbers: {numbers}\")\nmore_numbers = {4, 5, 6, 7, 8}\nprint(f\"  Union: {numbers | more_numbers}\")\nprint(f\"  Intersection: {numbers & more_numbers}\")\n\n# Tuples (immutable, ordered)\ncoordinates = (10, 20)\nprint(\"\\nTuples:\")\nprint(f\"  Coordinates: {coordinates}\")\nx, y = coordinates\nprint(f\"  x={x}, y={y}\")\n\n# List comprehensions\nsquares = [x**2 for x in range(1, 11)]\nprint(f\"\\nList comprehension (squares): {squares}\")\nevens = [x for x in range(1, 21) if x % 2 == 0]\nprint(f\"Even numbers 1-20: {evens}\")"
  },
  {
    "id": "python-file-operations",
    "title": "Python File Operations",
    "description": "Reading and writing files with error handling",
    "language": "Python",
    "category": "basics",
    "hasPreview": true,
    "code": "# Python file operations (simulated for web environment)\n\n# Note: In a real environment, these would work with actual files\n# Here we demonstrate the patterns\n\nprint(\"File Operations Patterns:\\n\")\n\n# Writing to a file\nprint(\"1. Writing to a file:\")\nfile_content = \"\"\"# Example of writing to a file\ntry:\n    with open('example.txt', 'w') as f:\n        f.write('Hello, World!\\\\n')\n        f.write('This is a second line.\\\\n')\n    print('  ✓ File written successfully')\nexcept IOError as e:\n    print(f'  ✗ Error writing file: {e}')\n\"\"\"\nprint(file_content)\n\n# Reading from a file\nprint(\"\\n2. Reading from a file:\")\nread_example = \"\"\"try:\n    with open('example.txt', 'r') as f:\n        content = f.read()\n        print(content)\nexcept FileNotFoundError:\n    print('  ✗ File not found')\nexcept IOError as e:\n    print(f'  ✗ Error reading file: {e}')\n\"\"\"\nprint(read_example)\n\n# Reading lines\nprint(\"\\n3. Reading line by line:\")\nlines_example = \"\"\"with open('example.txt', 'r') as f:\n    for line_num, line in enumerate(f, 1):\n        print(f'  Line {line_num}: {line.strip()}')\n\"\"\"\nprint(lines_example)\n\n# Demonstrate string operations as alternative\nprint(\"\\n4. Working with text data:\")\ntext_data = \"Hello, World!\\nThis is a second line.\\nAnd a third!\"\nlines = text_data.split('\\n')\nprint(f\"  Total lines: {len(lines)}\")\nfor i, line in enumerate(lines, 1):\n    print(f\"  Line {i}: {line}\")"
  },
  {
    "id": "python-interactive-hello",
    "title": "Interactive: Hello User",
    "description": "Simple interactive program that greets the user by name",
    "language": "Python",
    "category": "interactive",
    "hasPreview": true,
    "code": "# Interactive program - asks for user's name and greets them\n\nprint(\"Welcome to the greeting program!\")\nprint()\n\nname = input(\"What is your name? \")\nprint(f\"\\nHello, {name}! Nice to meet you!\")\n\nage = input(\"How old are you? \")\nprint(f\"\\nWow, {age} years old! That's awesome!\")\n\ncolor = input(\"What's your favorite color? \")\nprint(f\"\\n{color} is a great choice! I love that color too.\")\n\nprint(f\"\\nThanks for chatting, {name}! Have a wonderful day!\")"
  },
  {
    "id": "python-calculator-input",
    "title": "Interactive: Simple Calculator",
    "description": "Calculator that takes user input for operations",
    "language": "Python",
    "category": "interactive",
    "hasPreview": true,
    "code": "# Interactive calculator\n\nprint(\"=== Simple Calculator ===\")\nprint()\n\nnum1 = float(input(\"Enter first number: \"))\nnum2 = float(input(\"Enter second number: \"))\n\nprint(\"\\nAvailable operations:\")\nprint(\"  + : Addition\")\nprint(\"  - : Subtraction\")\nprint(\"  * : Multiplication\")\nprint(\"  / : Division\")\nprint()\n\noperation = input(\"Choose operation (+, -, *, /): \")\n\nif operation == '+':\n    result = num1 + num2\n    print(f\"\\n{num1} + {num2} = {result}\")\nelif operation == '-':\n    result = num1 - num2\n    print(f\"\\n{num1} - {num2} = {result}\")\nelif operation == '*':\n    result = num1 * num2\n    print(f\"\\n{num1} × {num2} = {result}\")\nelif operation == '/':\n    if num2 != 0:\n        result = num1 / num2\n        print(f\"\\n{num1} ÷ {num2} = {result}\")\n    else:\n        print(\"\\nError: Cannot divide by zero!\")\nelse:\n    print(\"\\nInvalid operation!\")"
  },
  {
    "id": "python-guess-number",
    "title": "Interactive: Number Guessing Game",
    "description": "Classic number guessing game with user input",
    "language": "Python",
    "category": "interactive",
    "hasPreview": true,
    "code": "# Number guessing game\nimport random\n\nprint(\"=== Number Guessing Game ===\")\nprint(\"I'm thinking of a number between 1 and 100...\")\nprint()\n\ntarget = random.randint(1, 100)\nattempts = 0\nmax_attempts = 7\n\nwhile attempts < max_attempts:\n    guess = int(input(f\"Attempt {attempts + 1}/{max_attempts} - Enter your guess: \"))\n    attempts += 1\n    \n    if guess < target:\n        print(\"Too low! Try a higher number.\\n\")\n    elif guess > target:\n        print(\"Too high! Try a lower number.\\n\")\n    else:\n        print(f\"\\n🎉 Congratulations! You guessed it in {attempts} attempts!\")\n        break\nelse:\n    print(f\"\\n😞 Game over! The number was {target}.\")\n    print(f\"You used all {max_attempts} attempts.\")"
  },
  {
    "id": "python-mad-libs",
    "title": "Interactive: Mad Libs Story",
    "description": "Fun interactive story generator using user input",
    "language": "Python",
    "category": "interactive",
    "hasPreview": true,
    "code": "# Mad Libs - Interactive story generator\n\nprint(\"=== Mad Libs Story Generator ===\")\nprint(\"Fill in the blanks to create a funny story!\")\nprint()\n\nnoun1 = input(\"Enter a noun (thing): \")\nadjective1 = input(\"Enter an adjective (describing word): \")\nverb1 = input(\"Enter a verb ending in -ing: \")\nnoun2 = input(\"Enter another noun: \")\nadjective2 = input(\"Enter another adjective: \")\nnoun3 = input(\"Enter a plural noun: \")\nverb2 = input(\"Enter a verb: \")\nnoun4 = input(\"Enter one more noun: \")\n\nprint(\"\\n\" + \"=\" * 50)\nprint(\"YOUR STORY:\")\nprint(\"=\" * 50)\nprint()\nprint(f\"Once upon a time, there was a {adjective1} {noun1}.\")\nprint(f\"It loved {verb1} in the park every morning.\")\nprint(f\"One day, it found a mysterious {noun2} on the ground.\")\nprint(f\"The {noun2} was so {adjective2} that it started to glow!\")\nprint(f\"Suddenly, hundreds of tiny {noun3} appeared and began to {verb2}.\")\nprint(f\"The {noun1} was amazed and took the {noun2} to the nearest {noun4}.\")\nprint(f\"And they all lived happily ever after!\")\nprint()\nprint(\"=\" * 50)\nprint(\"The End!\")"
  },
  {
    "id": "python-todo-cli",
    "title": "Interactive: Todo List CLI",
    "description": "Command-line todo list with interactive menu",
    "language": "Python",
    "category": "interactive",
    "hasPreview": true,
    "code": "# Interactive CLI Todo List\n\ntodos = []\n\nprint(\"=== Todo List Manager ===\")\nprint()\n\nwhile True:\n    print(\"\\nCurrent Todos:\")\n    if not todos:\n        print(\"  (No todos yet)\")\n    else:\n        for i, todo in enumerate(todos, 1):\n            print(f\"  {i}. {todo}\")\n    \n    print(\"\\nOptions:\")\n    print(\"  1. Add todo\")\n    print(\"  2. Remove todo\")\n    print(\"  3. Exit\")\n    \n    choice = input(\"\\nEnter choice (1-3): \")\n    \n    if choice == '1':\n        todo = input(\"Enter new todo: \")\n        if todo.strip():\n            todos.append(todo)\n            print(f\"✓ Added: {todo}\")\n        else:\n            print(\"✗ Todo cannot be empty\")\n    \n    elif choice == '2':\n        if not todos:\n            print(\"✗ No todos to remove\")\n        else:\n            try:\n                num = int(input(f\"Enter todo number (1-{len(todos)}): \"))\n                if 1 <= num <= len(todos):\n                    removed = todos.pop(num - 1)\n                    print(f\"✓ Removed: {removed}\")\n                else:\n                    print(\"✗ Invalid number\")\n            except ValueError:\n                print(\"✗ Please enter a valid number\")\n    \n    elif choice == '3':\n        print(\"\\nGoodbye! Final todo count:\", len(todos))\n        break\n    \n    else:\n        print(\"✗ Invalid choice\")"
  },
  {
    "id": "python-quiz-game",
    "title": "Interactive: Quiz Game",
    "description": "Multiple choice quiz with score tracking",
    "language": "Python",
    "category": "interactive",
    "hasPreview": true,
    "code": "# Interactive Quiz Game\n\nprint(\"=== Python Programming Quiz ===\")\nprint(\"Answer the following questions!\")\nprint()\n\nscore = 0\ntotal_questions = 5\n\n# Question 1\nprint(\"Question 1: What does CPU stand for?\")\nprint(\"  A) Central Process Unit\")\nprint(\"  B) Central Processing Unit\")\nprint(\"  C) Computer Personal Unit\")\nprint(\"  D) Central Processor Unit\")\nanswer = input(\"Your answer (A/B/C/D): \").upper()\nif answer == 'B':\n    print(\"✓ Correct!\\n\")\n    score += 1\nelse:\n    print(\"✗ Wrong! The answer was B\\n\")\n\n# Question 2\nprint(\"Question 2: Which programming language is known as the 'language of the web'?\")\nprint(\"  A) Python\")\nprint(\"  B) Java\")\nprint(\"  C) JavaScript\")\nprint(\"  D) C++\")\nanswer = input(\"Your answer (A/B/C/D): \").upper()\nif answer == 'C':\n    print(\"✓ Correct!\\n\")\n    score += 1\nelse:\n    print(\"✗ Wrong! The answer was C\\n\")\n\n# Question 3\nprint(\"Question 3: What is 2 to the power of 8?\")\nprint(\"  A) 128\")\nprint(\"  B) 256\")\nprint(\"  C) 512\")\nprint(\"  D) 64\")\nanswer = input(\"Your answer (A/B/C/D): \").upper()\nif answer == 'B':\n    print(\"✓ Correct!\\n\")\n    score += 1\nelse:\n    print(\"✗ Wrong! The answer was B\\n\")\n\n# Question 4\nprint(\"Question 4: Which data structure uses LIFO (Last In, First Out)?\")\nprint(\"  A) Queue\")\nprint(\"  B) Stack\")\nprint(\"  C) Array\")\nprint(\"  D) Tree\")\nanswer = input(\"Your answer (A/B/C/D): \").upper()\nif answer == 'B':\n    print(\"✓ Correct!\\n\")\n    score += 1\nelse:\n    print(\"✗ Wrong! The answer was B\\n\")\n\n# Question 5\nprint(\"Question 5: What does HTML stand for?\")\nprint(\"  A) Hyper Text Markup Language\")\nprint(\"  B) High Tech Modern Language\")\nprint(\"  C) Home Tool Markup Language\")\nprint(\"  D) Hyperlinks and Text Markup Language\")\nanswer = input(\"Your answer (A/B/C/D): \").upper()\nif answer == 'A':\n    print(\"✓ Correct!\\n\")\n    score += 1\nelse:\n    print(\"✗ Wrong! The answer was A\\n\")\n\n# Final score\nprint(\"=\" * 40)\nprint(f\"Quiz Complete! Your score: {score}/{total_questions}\")\npercentage = (score / total_questions) * 100\nprint(f\"Percentage: {percentage:.1f}%\")\n\nif score == total_questions:\n    print(\"🌟 Perfect score! You're a genius!\")\nelif score >= 3:\n    print(\"👍 Good job! Keep learning!\")\nelse:\n    print(\"📚 Keep studying! You'll do better next time!\")\nprint(\"=\" * 40)"
  },
  {
    "id": "python-budget-calculator",
    "title": "Interactive: Budget Calculator",
    "description": "Personal budget calculator with multiple expense categories",
    "language": "Python",
    "category": "interactive",
    "hasPreview": true,
    "code": "# Personal Budget Calculator with Multiple Inputs\n\nprint(\"=\" * 50)\nprint(\"    PERSONAL MONTHLY BUDGET CALCULATOR\")\nprint(\"=\" * 50)\nprint()\n\n# Income information\nprint(\"INCOME INFORMATION\")\nprint(\"-\" * 50)\nmonthly_income = float(input(\"Enter your monthly income: $\"))\nside_income = float(input(\"Enter any side income: $\"))\ntotal_income = monthly_income + side_income\n\nprint(f\"\\n✓ Total Monthly Income: ${total_income:,.2f}\")\nprint()\n\n# Housing expenses\nprint(\"HOUSING EXPENSES\")\nprint(\"-\" * 50)\nrent = float(input(\"Rent/Mortgage payment: $\"))\nutilities = float(input(\"Utilities (electric, water, gas): $\"))\ninternet = float(input(\"Internet/Cable: $\"))\nhousing_total = rent + utilities + internet\n\nprint(f\"✓ Total Housing: ${housing_total:,.2f}\")\nprint()\n\n# Transportation\nprint(\"TRANSPORTATION\")\nprint(\"-\" * 50)\ncar_payment = float(input(\"Car payment/lease: $\"))\ngas = float(input(\"Gas/fuel: $\"))\ninsurance = float(input(\"Car insurance: $\"))\ntransport_total = car_payment + gas + insurance\n\nprint(f\"✓ Total Transportation: ${transport_total:,.2f}\")\nprint()\n\n# Food and groceries\nprint(\"FOOD & GROCERIES\")\nprint(\"-\" * 50)\ngroceries = float(input(\"Groceries: $\"))\ndining_out = float(input(\"Dining out/restaurants: $\"))\nfood_total = groceries + dining_out\n\nprint(f\"✓ Total Food: ${food_total:,.2f}\")\nprint()\n\n# Other expenses\nprint(\"OTHER EXPENSES\")\nprint(\"-\" * 50)\nentertainment = float(input(\"Entertainment/hobbies: $\"))\nsubscriptions = float(input(\"Subscriptions (Netflix, Spotify, etc.): $\"))\nother = float(input(\"Miscellaneous expenses: $\"))\nother_total = entertainment + subscriptions + other\n\nprint(f\"✓ Total Other: ${other_total:,.2f}\")\nprint()\n\n# Savings goal\nprint(\"SAVINGS\")\nprint(\"-\" * 50)\nsavings_goal = float(input(\"Savings goal for this month: $\"))\nprint()\n\n# Calculate totals\ntotal_expenses = housing_total + transport_total + food_total + other_total + savings_goal\nremaining = total_income - total_expenses\n\n# Display budget summary\nprint(\"\\n\" + \"=\" * 50)\nprint(\"         BUDGET SUMMARY\")\nprint(\"=\" * 50)\nprint()\nprint(f\"Total Income:          ${total_income:>12,.2f}\")\nprint()\nprint(\"EXPENSES:\")\nprint(f\"  Housing:             ${housing_total:>12,.2f}\")\nprint(f\"  Transportation:      ${transport_total:>12,.2f}\")\nprint(f\"  Food:                ${food_total:>12,.2f}\")\nprint(f\"  Other:               ${other_total:>12,.2f}\")\nprint(f\"  Savings:             ${savings_goal:>12,.2f}\")\nprint(\"-\" * 50)\nprint(f\"Total Expenses:        ${total_expenses:>12,.2f}\")\nprint()\nprint(\"-\" * 50)\n\nif remaining >= 0:\n    print(f\"Remaining Balance:     ${remaining:>12,.2f} ✓\")\n    print(\"\\n✅ Great! You're within budget!\")\n    if remaining > 0:\n        print(f\"   Consider adding ${remaining:,.2f} to savings!\")\nelse:\n    print(f\"Over Budget:           ${abs(remaining):>12,.2f} ⚠️\")\n    print(\"\\n⚠️  Warning: You're spending more than you earn!\")\n    print(\"   Consider reducing expenses or increasing income.\")\n\nprint(\"=\" * 50)\n\n# Calculate percentages\nprint(\"\\nBUDGET BREAKDOWN (% of income):\")\nprint(f\"  Housing:        {(housing_total/total_income)*100:>5.1f}%\")\nprint(f\"  Transportation: {(transport_total/total_income)*100:>5.1f}%\")\nprint(f\"  Food:           {(food_total/total_income)*100:>5.1f}%\")\nprint(f\"  Other:          {(other_total/total_income)*100:>5.1f}%\")\nprint(f\"  Savings:        {(savings_goal/total_income)*100:>5.1f}%\")\nprint()\nprint(\"💡 Recommended: 50% needs, 30% wants, 20% savings\")"
  },
  {
    "id": "python-adventure-game",
    "title": "Interactive: Text Adventure Game",
    "description": "Multi-path adventure game with multiple decision points",
    "language": "Python",
    "category": "interactive",
    "hasPreview": true,
    "code": "# Interactive Text Adventure Game\nimport random\n\nprint(\"=\" * 60)\nprint(\"         THE ENCHANTED FOREST - A Text Adventure\")\nprint(\"=\" * 60)\nprint()\n\n# Introduction\nprint(\"You wake up in a mysterious forest...\")\nprint(\"The trees tower above you, their branches creating\")\nprint(\"a canopy that blocks most of the sunlight.\")\nprint()\n\nname = input(\"What is your name, traveler? \")\nprint(f\"\\nGreetings, {name}! Your adventure begins now...\\n\")\n\n# Starting point\nprint(\"-\" * 60)\nprint(\"You find yourself at a fork in the path.\")\nprint(\"To the LEFT, you hear the sound of running water.\")\nprint(\"To the RIGHT, you see smoke rising in the distance.\")\nprint(\"STRAIGHT ahead, the path continues deeper into the forest.\")\nprint(\"-\" * 60)\n\nchoice1 = input(\"\\nWhich way do you go? (left/right/straight): \").lower()\n\nif choice1 == \"left\":\n    print(\"\\n🌊 You follow the sound of water and discover a river!\")\n    print(\"A friendly otter surfaces and offers you a shiny stone.\")\n    print(\"\\\"This stone grants one wish,\\\" the otter squeaks.\")\n    print()\n    \n    wish = input(\"What do you wish for? (treasure/wisdom/power): \").lower()\n    \n    if wish == \"treasure\":\n        gold = random.randint(100, 1000)\n        print(f\"\\n✨ A chest appears with {gold} gold coins!\")\n        print(f\"Congratulations {name}, you're rich!\")\n        ending = \"WEALTHY\"\n    elif wish == \"wisdom\":\n        print(\"\\n📚 Ancient knowledge floods your mind!\")\n        print(\"You now understand the secrets of the forest.\")\n        print(\"You become the forest's guardian.\")\n        ending = \"WISE\"\n    else:\n        print(\"\\n⚡ Lightning surges through you!\")\n        print(\"You gain the power to control nature.\")\n        print(\"But with great power comes great responsibility...\")\n        ending = \"POWERFUL\"\n\nelif choice1 == \"right\":\n    print(\"\\n🔥 You approach the smoke and find a small village!\")\n    print(\"The villagers are celebrating a harvest festival.\")\n    print()\n    \n    participate = input(\"Do you join the celebration? (yes/no): \").lower()\n    \n    if participate == \"yes\":\n        print(\"\\n🎉 The villagers welcome you warmly!\")\n        print(\"You feast, dance, and make many friends.\")\n        \n        activity = input(\"\\nWhat do you do? (dance/eat/compete): \").lower()\n        \n        if activity == \"dance\":\n            print(\"\\n💃 Your dancing impresses everyone!\")\n            print(\"The village chief offers you a home here.\")\n            print(f\"{name} finds a new family in the village.\")\n            ending = \"JOYFUL\"\n        elif activity == \"eat\":\n            print(\"\\n🍖 You try every delicious dish!\")\n            print(\"The food gives you incredible strength.\")\n            print(\"You become the village's strongest protector.\")\n            ending = \"STRONG\"\n        else:\n            print(\"\\n🏆 You enter the competition and WIN!\")\n            print(\"You're crowned the festival champion!\")\n            print(\"Your name becomes legend in the village.\")\n            ending = \"LEGENDARY\"\n    else:\n        print(\"\\n😔 You decide to continue your journey alone.\")\n        print(\"As you leave, you wonder what could have been...\")\n        ending = \"WANDERER\"\n\nelse:\n    print(\"\\n🌲 You venture deeper into the mysterious forest.\")\n    print(\"The trees grow thicker and the path darker.\")\n    print(\"Suddenly, you encounter a talking owl!\")\n    print()\n    print(\"The owl says: \\\"I can guide you out, but first...\\\"\")\n    print(\"\\\"Answer my riddle correctly!\\\"\")\n    print()\n    \n    print(\"RIDDLE: I speak without a mouth and hear without ears.\")\n    print(\"        I have no body, but come alive with wind.\")\n    print(\"        What am I?\")\n    print()\n    \n    riddle = input(\"Your answer: \").lower()\n    \n    if \"echo\" in riddle:\n        print(\"\\n🦉 \\\"CORRECT!\\\" hoots the owl excitedly.\")\n        print(\"The owl transforms into a magical spirit!\")\n        print(\"It grants you the ability to speak with all animals.\")\n        print(f\"{name} becomes a legendary beast master!\")\n        ending = \"ENLIGHTENED\"\n    else:\n        print(\"\\n🦉 \\\"Incorrect,\\\" says the owl. \\\"The answer was ECHO.\\\"\")\n        print(\"\\\"But I admire your courage to try!\\\"\")\n        print(\"The owl guides you out anyway and gives you a magic feather.\")\n        print(\"The feather will always point you home.\")\n        ending = \"FORTUNATE\"\n\n# Conclusion\nprint(\"\\n\" + \"=\" * 60)\nprint(f\"         {name}'S ADVENTURE ENDS - {ending} ENDING\")\nprint(\"=\" * 60)\nprint(f\"\\nThank you for playing, {name}!\")\nprint(\"Every choice creates a different story...\")\nprint(\"Try again to discover all the endings!\")\nprint(\"\\n\" + \"=\" * 60)"
  },
  {
    "id": "python-study-timer",
    "title": "Interactive: Study Session Planner",
    "description": "Plan study sessions with breaks using the Pomodoro technique",
    "language": "Python",
    "category": "interactive",
    "hasPreview": true,
    "code": "# Study Session Planner - Pomodoro Technique\nimport random\n\nprint(\"=\" * 60)\nprint(\"       STUDY SESSION PLANNER - POMODORO TECHNIQUE\")\nprint(\"=\" * 60)\nprint()\nprint(\"📚 The Pomodoro Technique helps you study effectively!\")\nprint(\"   • Study for 25 minutes (1 Pomodoro)\")\nprint(\"   • Take a 5-minute break\")\nprint(\"   • After 4 Pomodoros, take a 15-30 minute long break\")\nprint()\n\n# Get student information\nstudent_name = input(\"What's your name? \")\nsubject = input(\"What subject are you studying today? \")\nprint()\n\n# Determine study duration\nprint(\"How long do you want to study?\")\nprint(\"  1. Quick session (1 hour)\")\nprint(\"  2. Medium session (2 hours)\")\nprint(\"  3. Long session (3 hours)\")\nprint(\"  4. Marathon session (4+ hours)\")\nprint()\n\nduration_choice = input(\"Choose session length (1-4): \")\n\nif duration_choice == \"1\":\n    pomodoros = 2\n    session_name = \"Quick\"\nelif duration_choice == \"2\":\n    pomodoros = 4\n    session_name = \"Medium\"\nelif duration_choice == \"3\":\n    pomodoros = 6\n    session_name = \"Long\"\nelse:\n    pomodoros = 8\n    session_name = \"Marathon\"\n\nprint()\nprint(f\"✓ {session_name} session selected: {pomodoros} Pomodoros\")\nprint()\n\n# Set goals for each Pomodoro\ngoals = []\nprint(\"Set a specific goal for each Pomodoro:\")\nprint(\"-\" * 60)\n\nfor i in range(pomodoros):\n    goal = input(f\"  Pomodoro {i+1} goal: \")\n    goals.append(goal)\n\nprint()\n\n# Difficulty level\ndifficulty = input(\"Rate your energy level (high/medium/low): \").lower()\n\nif difficulty == \"high\":\n    tip = \"Great! Tackle the hardest topics first.\"\n    emoji = \"💪\"\nelif difficulty == \"medium\":\n    tip = \"Good! Mix challenging and easier topics.\"\n    emoji = \"👍\"\nelse:\n    tip = \"No worries! Start with easier topics to build momentum.\"\n    emoji = \"🌱\"\n\nprint(f\"\\n{emoji} {tip}\")\nprint()\n\n# Study environment\nmusic = input(\"Will you use background music? (yes/no): \").lower()\nif music == \"yes\":\n    music_type = input(\"What type? (classical/lofi/nature/silence): \")\n    print(f\"\\n🎵 {music_type.title()} music - Excellent choice!\")\nelse:\n    print(\"\\n🔇 Silence can be golden for concentration!\")\n\nprint()\n\n# Distraction management\nphone = input(\"Will you put your phone away? (yes/no): \").lower()\nif phone == \"yes\":\n    print(\"\\n📱 ✓ Great! Eliminating distractions boosts focus by 40%!\")\nelse:\n    print(\"\\n📱 ⚠️  Tip: Phone notifications reduce productivity by 40%\")\n\nprint()\n\n# Generate study plan\nprint(\"\\n\" + \"=\" * 60)\nprint(f\"    {student_name.upper()}'S STUDY PLAN - {subject.upper()}\")\nprint(\"=\" * 60)\nprint()\n\ntotal_study_time = pomodoros * 25\ntotal_break_time = (pomodoros - 1) * 5 + (pomodoros // 4) * 15\ntotal_time = total_study_time + total_break_time\n\nprint(f\"Total study time:  {total_study_time} minutes\")\nprint(f\"Total break time:  {total_break_time} minutes\")\nprint(f\"Total session:     {total_time} minutes ({total_time//60}h {total_time%60}m)\")\nprint()\nprint(\"SCHEDULE:\")\nprint(\"-\" * 60)\n\nfor i in range(pomodoros):\n    print(f\"\\n🍅 Pomodoro {i+1}: {goals[i]}\")\n    print(f\"   Duration: 25 minutes\")\n    \n    if (i + 1) % 4 == 0 and i < pomodoros - 1:\n        print(f\"   ☕ LONG BREAK: 15-30 minutes\")\n        print(f\"      Suggestion: Take a walk, stretch, have a snack\")\n    elif i < pomodoros - 1:\n        print(f\"   ☕ Short break: 5 minutes\")\n        print(f\"      Suggestion: Stand up, get water, look away from screen\")\n\nprint()\nprint(\"-\" * 60)\n\n# Motivational tips\nmotivation = [\n    \"You've got this! Break down big tasks into small steps.\",\n    \"Remember: Progress over perfection!\",\n    \"Each Pomodoro is a small victory. Celebrate them!\",\n    \"Your future self will thank you for studying today.\",\n    \"Focus on understanding, not just memorizing.\"\n]\n\nprint(f\"\\n💡 {random.choice(motivation)}\")\n\n# Success tracking\nprint()\ntrack = input(\"\\nWould you like to track your completion? (yes/no): \").lower()\n\nif track == \"yes\":\n    print(\"\\n📊 TRACKING YOUR SESSION\")\n    print(\"-\" * 60)\n    completed = 0\n    \n    for i in range(pomodoros):\n        done = input(f\"\\n🍅 Pomodoro {i+1}: {goals[i]}\\n   Completed? (yes/no): \").lower()\n        if done == \"yes\":\n            completed += 1\n            print(f\"   ✓ Great job! ({completed}/{pomodoros} completed)\")\n        else:\n            print(f\"   → That's okay! ({completed}/{pomodoros} completed so far)\")\n    \n    print(\"\\n\" + \"=\" * 60)\n    print(\"         SESSION COMPLETE!\")\n    print(\"=\" * 60)\n    print(f\"\\nPomodoros completed: {completed}/{pomodoros}\")\n    \n    success_rate = (completed / pomodoros) * 100\n    print(f\"Success rate: {success_rate:.1f}%\")\n    \n    if success_rate == 100:\n        print(\"\\n🌟 PERFECT SESSION! You're a study champion! 🌟\")\n    elif success_rate >= 75:\n        print(\"\\n🎉 Excellent work! You're building great habits!\")\n    elif success_rate >= 50:\n        print(\"\\n👍 Good effort! Keep improving each session!\")\n    else:\n        print(\"\\n💪 Every session is practice. You'll do better next time!\")\n    \n    # Study streak\n    print()\n    today_streak = input(\"\\nHow many days in a row have you studied? \")\n    print(f\"\\n🔥 {today_streak}-day streak! Consistency is key to mastery!\")\nelse:\n    print(\"\\nGood luck with your study session!\")\n    print(f\"Remember your goals and take those breaks, {student_name}!\")\n\nprint(\"\\n\" + \"=\" * 60)\nprint(f\"Happy studying, {student_name}! You're investing in yourself! 📚✨\")\nprint(\"=\" * 60)"
  }
]
