An open API service indexing awesome lists of open source software.

https://github.com/migueldcdev/graphic-editor


https://github.com/migueldcdev/graphic-editor

Last synced: about 1 year ago
JSON representation

Awesome Lists containing this project

README

          

# Web Graphic Editor

A minimal web-based image editor that allows users to **upload images**, **select areas of text within images**, and **process images efficiently**. Built with **modern web technologies** to ensure scalability, performance, and ease of use.

## ๐Ÿš€ Features

- ๐Ÿ“‚ **Upload Images** (via File Input or Drag & Drop)
- ๐Ÿ“ **Select Text Areas within Images**
- ๐ŸŽจ **Smart Canvas Resizing** to maintain aspect ratio
- ๐Ÿ”„ **Efficient State Management with Redux Toolkit**
- ๐Ÿ“Š **Real-time Monitoring with Datadog**
- ๐Ÿ›  **Automated CI/CD Pipeline for Continuous Integration & Deployment**
- โ˜๏ธ **Deployed on Vercel** for seamless hosting

---

## ๐Ÿ›  Why These Technologies?

### โš›๏ธ React 19

React provides a powerful component-based architecture that enables dynamic UI updates and ensures maintainability.

### ๐ŸŽจ Chakra UI

Chakra UI was chosen for its **flexibility**, **accessibility**, and **design consistency**, allowing us to build a sleek and responsive interface effortlessly.

### ๐ŸŽญ Konva.js + react-konva

Konva.js is optimized for **2D canvas rendering**, making it the ideal choice for handling **image manipulation** and **text area selection** with smooth performance.

### ๐Ÿ› Redux Toolkit

State management is streamlined using Redux Toolkit, which provides **predictable data flow**, **easy debugging**, and **performance optimizations**.

### ๐Ÿ“Š Datadog

Datadog enables real-time observability, helping us **track performance**, **detect issues early**, and ensure **optimal user experience**.

### ๐Ÿš€ Vite

Vite enables **blazing-fast development builds** and **hot module replacement**, significantly improving the developer experience.

### ๐Ÿ”ง CI/CD with GitHub Actions

A **CI/CD pipeline** is integrated via GitHub Actions to automate static code analysis, formatting and testing, ensuring high-quality updates and seamless releases.

### โ˜๏ธ Vercel for Deployment

Vercel is used for **serverless deployment**, enabling fast global access and easy scaling.

---

## ๐Ÿ“ฆ Installation

1. Clone the repository:

```sh
git clone https://github.com/your-repo/image-editor.git
cd image-editor
```

2. Install dependencies:

```sh
npm install
# or
yarn install
```

3. Start the development server:

```sh
npm run dev
# or
yarn dev
```

4. Open [http://localhost:5173](http://localhost:5173) in your browser.

---

## ๐Ÿ“‚ Project Structure

```
๐Ÿ“ฆ graphic-editor
โ”œโ”€โ”€ ๐Ÿ“‚ .github/workflows # CI Pipeline Config (GitHub Actions)
โ”œโ”€โ”€ ๐Ÿ“‚ tests # End-To-End test example
โ”œโ”€โ”€ ๐Ÿ“‚ src
โ”‚ โ”œโ”€โ”€ ๐Ÿ“‚ app # Redux Store and Hooks
โ”‚ โ”œโ”€โ”€ ๐Ÿ“‚ components # UI Components (Uploader, Canvas, Toolbar, etc.) and Chakra UI Components
โ”‚ โ”œโ”€โ”€ ๐Ÿ“‚ features # Redux slices
โ”‚ โ”œโ”€โ”€ ๐Ÿ“‚ assets # Static Assets (Icons, Logos, etc.)
โ”‚ โ”œโ”€โ”€ App.tsx # Main App Component
| โ”œโ”€โ”€ App.test.tsx # Example unit test
โ”‚ โ”œโ”€โ”€ main.tsx # Entry Point
โ”‚
โ”œโ”€โ”€ ๐Ÿ“œ .prettierrc # Opinionated code formatting rules
โ”œโ”€โ”€ ๐Ÿ“œ eslint.config.js #
โ”œโ”€โ”€ ๐Ÿ“œ package.json # Dependencies and Scripts
โ”œโ”€โ”€ ๐Ÿ“œ README.md # Documentation
โ”œโ”€โ”€ ๐Ÿ“œ tsconfig.json # TypeScript Config
โ”œโ”€โ”€ ๐Ÿ“œ vite.config.ts # Vite Configuration
โ”œโ”€โ”€ ๐Ÿ“œ vitest.config.ts # Vitest testing configuration
โ””โ”€โ”€ ๐Ÿ“œ vercel.json # Vercel Deployment Config
โ””โ”€โ”€ ๐Ÿ“œ datadog.config.js # Datadog Configuration
```

---

## ๐Ÿš€ Deployment

This project is **automatically deployed on Vercel** whenever changes are pushed to the `main` branch.

---

## ๐Ÿงช Running Tests

This project uses **Vitest** and **Playwright** for testing:

```sh
npm run test # Run unit tests (Vitest)
npm run test:e2e # Run end-to-end tests (Playwright)
```

---

## ๐Ÿ“œ License

MIT License ยฉ 2025 Miguel Diaz