8000 GitHub - utk09-NCL/ghw-doodle-platform: A simple doodle application built with React and TypeScript.
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content

utk09-NCL/ghw-doodle-platform

Repository files navigation

🎨 Doodle Platform - React.js

A canvas drawing application built with React, TypeScript, and Vite.

React TypeScript Vite Canvas

✨ Features

πŸ–ŒοΈ Drawing Tools

  • Brush Tool: Freehand drawing with customizable brush sizes (1-20px)
  • Shape Tools: Draw lines, rectangles, and circles
  • Flood Fill: Bucket tool to fill enclosed areas with color
  • Eraser: Remove parts of your drawing

πŸ“ Canvas Operations and Features

  • Undo Functionality
  • Clear Canvas
  • Save as Image
  • Error Boundary
  • History Management

⌨️ Keyboard Shortcuts

  • Ctrl+Z / Cmd+Z: Undo last action
  • Ctrl+S / Cmd+S: Save canvas as image
  • Ctrl+Delete / Cmd+Delete: Clear entire canvas
  • 1-5: Switch between tools (Brush, Line, Rectangle, Circle, Fill)
  • E: Toggle eraser mode

πŸš€ Running Locally

Prerequisites

  • Node.js (version 20 or higher)
  • npm or yarn package manager

Installation

  1. Clone the repository

    git clone https://github.com/utk09-NCL/ghw-doodle-platform
    cd ghw-doodle-platform
  2. Install dependencies

    npm install
    # or
    yarn install
  3. Start the development server

    npm run dev
    # or
    yarn dev
  4. Open your browser Navigate to http://localhost:5173 to start doodling!

Available Scripts

  • npm run dev - Start development server with hot reload
  • npm run build - Build production-ready application
  • npm run preview - Preview the production build locally
  • npm run lint - Run ESLint to check code quality

πŸ› οΈ Development

Project Structure

src/
β”œβ”€β”€ components/        # Reusable React components
β”‚   └── ErrorBoundary.tsx
β”œβ”€β”€ config/            # Application configuration
β”‚   └── app.ts
β”œβ”€β”€ hooks/             # Custom React hooks
β”‚   β”œβ”€β”€ useCanvasHistory.ts
β”‚   └── useDrawing.ts
β”œβ”€β”€ types/             # TypeScript type definitions
β”‚   └── canvas.ts
β”œβ”€β”€ utils/             # Utility functions
β”‚   β”œβ”€β”€ canvasUtils.ts
β”‚   β”œβ”€β”€ floodFillUtils.ts
β”‚   └── shapeUtils.ts
β”œβ”€β”€ App.tsx              # Main application component
β”œβ”€β”€ CanvasComponent.tsx  # Canvas drawing component
└── ToolbarComponent.tsx # Tool selection interface

🀝 Contributing

Contributions are welcome! Here are some ways you can help improve the Doodle Platform:

πŸ› Known Issues & Missing Features

High Priority

  • Performance Optimization: Optimize for large canvas operations
  • Color Picker: Implement a color picker for custom colors

Low Priority

  • Zoom In/Out: Canvas zoom functionality
  • Color Palette Import: Load custom color palettes
  • Drawing Templates: Pre-made templates and backgrounds
  • Collaborative Drawing: Real-time collaboration features
  • Animation Support: Simple frame-by-frame animation
  • Accessibility Improvements: ARIA labels, keyboard navigation

Getting Started with Contributing

  1. Fork the repository

  2. Create a feature branch

    git checkout -b feature/your-feature-name
  3. Make your changes

  4. Follow the coding standards

    • Use TypeScript for type safety
    • Follow existing code formatting
    • Add JSDoc comments for new functions
    • Write meaningful commit messages
  5. Test your changes

    npm run lint
    npm run build
  6. Submit a pull request

πŸ“‹ Contribution Guidelines

  • Code Style: Follow the existing TypeScript/React patterns
  • Testing: Test your changes across different browsers
  • Documentation: Update README.md if adding new features
  • Performance: Consider performance impact of new features
  • Accessibility: Ensure new features are accessible (ARIA labels, keyboard navigation)

πŸ’‘ Feature Requests

Open an issue with the label "enhancement" and describe:

  • What feature you'd like to see
  • Why it would be useful
  • Any implementation ideas you have

πŸ“„ License

This project is licensed under the MIT License. Feel free to use, modify, and distribute as needed.


Built with ❀️ as part of MLH Global Hack Week

Happy doodling! 🎨✨

About

A simple doodle application built with React and TypeScript.

Topics

Resources

License

Stars

Watchers

Forks

Contributors 2

  •  
  •  
0