johndoe6345789 3534b73e5e Add test IDs and accessibility to empty state and snippet header
Final iteration of accessibility improvements:
- Added test IDs to EmptyState component (status role, create menu)
- Added test IDs to template menu items (react templates)
- Added test IDs to SnippetCardHeader (checkbox, title, description, language badge)
- Enhanced empty state with proper ARIA labels and role attributes
- Added data-testid to all snippet card header elements with unique IDs
- Improved accessibility with aria-label on badges and checkboxes

Component updates:
- EmptyState: Container with status role, create menu trigger, blank snippet item
- SnippetCardHeader: Selection checkbox, title, description, language badge
- Template menu: Individual template items with test IDs

Benefits:
- Complete e2e test coverage for snippet display workflows
- Empty state testing with template selection
- Snippet card header testing (selection, title, language display)
- Improved screen reader experience with semantic roles

Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
2026-01-20 18:16:35 +00:00
2026-01-17 14:23:21 +00:00
2026-01-17 14:23:21 +00:00
2026-01-17 14:23:21 +00:00
2026-01-17 14:23:21 +00:00
2026-01-17 14:23:21 +00:00

CodeSnippet - Code Snippet Manager

A powerful code snippet management application with flexible storage backends and an integrated component library showcase.

🚀 Quick Start

Choose the setup that works best for you:

docker-compose up -d

Access at: http://localhost:3000 (auto-configured with Flask backend)

Option 2: Local Development

# Start backend
docker-compose -f docker-compose.backend-only.yml up -d

# Configure frontend
echo "VITE_FLASK_BACKEND_URL=http://localhost:5000" > .env

# Start frontend
npm install
npm run dev

Access at: http://localhost:5173

Option 3: Frontend Only (No Backend)

npm install
npm run dev

Access at: http://localhost:5173 (uses local IndexedDB storage)

📖 See detailed setup instructions →

🔑 Key Features

  • 📝 Snippet Management - Create, edit, and organize code snippets with syntax highlighting
  • 🔍 Smart Search - Real-time search across title, description, language, and code
  • 👁️ Live Preview - Split-screen editor with live React component preview
  • 💾 Flexible Storage - Choose between local IndexedDB or Flask backend
  • 🔄 Auto-Configuration - Automatically use Flask backend via environment variable
  • 🗂️ Component Library - Showcase organized by atomic design principles
  • 📤 Export/Import - Backup and restore your entire database
  • 🎨 Beautiful UI - Modern dark theme with purple and cyan accents

🎯 Storage Backends

CodeSnippet supports two storage backends:

IndexedDB (Default)

  • Local browser storage
  • No server required
  • Perfect for personal use

Flask Backend (Optional)

  • Remote server storage
  • Multi-device sync
  • Requires Flask backend

🔧 Auto-Configuration:
Set VITE_FLASK_BACKEND_URL environment variable to automatically use Flask backend:

# .env file
VITE_FLASK_BACKEND_URL=http://localhost:5000

When set, the app automatically connects to Flask backend and disables manual configuration.

📖 Complete backend configuration guide →

📚 Documentation

Getting Started

Backend & Storage

Production Deployment

🛠️ Technology Stack

  • React 19 + TypeScript
  • SQL.js (SQLite in WebAssembly)
  • Flask (Python backend)
  • Monaco Editor (VS Code editor)
  • Framer Motion (animations)
  • Shadcn UI (component library)
  • Tailwind CSS (styling)

📄 License

The Spark Template files and resources from GitHub are licensed under the terms of the MIT license, Copyright GitHub, Inc.

Description
No description provided
Readme MIT 38 MiB
Languages
HTML 56%
TypeScript 32.2%
SCSS 9%
JavaScript 1.7%
CSS 0.8%
Other 0.3%