> For the complete documentation index, see [llms.txt](https://annotate-docs.dwaste.live/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://annotate-docs.dwaste.live/overview/project-structure.md).

# Project Structure

The tree structure of project is shown below.

```
annotation-lab/
├── client/
│   ├── public/
│   ├── src/
│   ├── package.json
│   └── ... (other React app files)
├── server/
│   ├── db/
│   ├── tests/
│   ├── app.py
│   ├── requirements.txt
│   └── ... (other Flask app files)
├── README.md
```

### Client

The client is a react application responsible for rendering UI. It contains following folders.

* **public/**: Static files and the root HTML file.
* **src/**: React components and other frontend code.
* **package.json**: Contains client dependencies and scripts.

### Server

The server is responsible for persisting information such as images and the working state for future usage. It is also responsible for masking  and creating configuration of preserved image. It contains following folders.

* **db/**: Database-related files and handlers.
* **tests/**: Test files to test the apis.
* **app.py**: Main Flask application file.
* **requirements.txt**: Contains server dependencies.

### Dependencies

#### Client

* [React](https://react.dev/)
* [Axios](https://axios-http.com/)
* Other dependencies as listed in `package.json`

#### Server

* [Flask](https://flask.palletsprojects.com/en/3.0.x/)
* [Pandas](https://pandas.pydata.org/)
* [NumPy](https://numpy.org/)
* Other dependencies as listed in `requirements.txt`
