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

https://github.com/ibrahimhiarea/image-edit-tool

πŸ“· Next.js web app for managing images, categories, and annotations. Built with Material UI, React Query, React Konva, and React Window. Supports upload, filtering, and drawing tools.
https://github.com/ibrahimhiarea/image-edit-tool

image-annotation material-ui nextjs react-konva react-query typescript

Last synced: about 1 year ago
JSON representation

πŸ“· Next.js web app for managing images, categories, and annotations. Built with Material UI, React Query, React Konva, and React Window. Supports upload, filtering, and drawing tools.

Awesome Lists containing this project

README

          

# πŸ–ΌοΈ Image Annotation App

A full-featured image management and annotation application built with **Next.js App Router**, **Material UI**, **React Query**, and **React Konva**. Users can upload, view, and delete images, manage categories, filter images by metadata, and annotate images using drawing tools.

## πŸš€ Features

- πŸ“ **Image Management**

- Upload (simulated)
- View gallery with details
- Delete with confirmation

- 🏷️ **Category Management**

- CRUD for image categories

- πŸ” **Filtering**

- Filter images by name, metadata, and category

- πŸ–ŠοΈ **Image Annotation**

- Draw rectangles using React Konva
- Select annotation colors
- Save, view, and delete annotations

- βš™οΈ **Tech Stack**
- Next.js (App Router)
- Material UI
- React Query
- React Konva

## πŸ“Έ Screenshots

_(Include screenshots here if available)_

## πŸ“¦ Getting Started

### Prerequisites

- Node.js β‰₯ 18
- npm or yarn

### Installation

```bash
git clone https://github.com/yourusername/image-annotation-app.git
npm install
```

### Run the App

```bash
npm run dev
```

App will be available at `http://localhost:3000`.

## 🌐 API

Using a [JSON Placeholder API](https://my-json-server.typicode.com/MostafaKMilly/demo). Data is **not persistent**, so API responses are simulated as needed.

## πŸ§ͺ Simulated API Endpoints

- `GET /categories`, `POST /categories`, `PUT /categories/:id`, `DELETE /categories/:id`
- `GET /images`, `POST /images`, `PUT /images/:id`, `DELETE /images/:id`
- `GET /annotations`, `POST /annotations`, `PUT /annotations/:id`, `DELETE /annotations/:id`
- `GET /images/:imageId/annotations`

## πŸ“ Project Structure

```
/
β”œβ”€ app/
β”‚ β”œβ”€ images/
β”‚ β”œβ”€ categories/
β”‚ β”œβ”€ annotations/
β”œβ”€ components/
β”œβ”€ hooks/
β”œβ”€ utils/
β”œβ”€ services/
β”œβ”€ styles/
└─ public/
```

## πŸ’‘ Notes

- This app simulates image uploads and annotationsβ€”no actual backend file storage.
- All image metadata, categories, and annotations are mocked or persisted temporarily in local state or cache.

## πŸ“‹ Assignment Scope

This project was built as part of a frontend technical test. See [Technical Test PDF](./Technical%20Test%20Assignment%202.pdf) for full details.

## 🧠 Topics

```
nextjs
react
material-ui
react-query
react-konva
image-annotation
frontend-assignment
image-gallery
image-upload
categories
annotations
```

## πŸ“« Contact

Feel free to reach out for any questions or improvements!