> ## Documentation Index
> Fetch the complete documentation index at: https://docs.serial.okos.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Monorepo

> An overview of the Serial monorepo

The Serial mono-repo is organized into three main sections: Frontend, Zuplo, and Supabase. Each section serves a specific purpose in the overall architecture of the project.

## Frontend

The frontend section of the mono-repo contains the React-based user interface for the Serial application.

```
frontend/
|--- src/
|   |--- features/
|   |--- shared/
|   |--- styles/
|--- public/
|--- vite.config.js
|--- package.json
|--- tsconfig.json
|--- tsconfig.base.json
|--- tsconfig.nostrict.json
|--- index.html
```

Key points about the frontend structure:

* The `src` folder contains the main source code, organized into `features` and `shared` components.
* `styles` folder holds CSS and Tailwind configuration.
* Configuration files like `vite.config.js`, `package.json`, and various TypeScript configurations are in the root of the frontend directory.
* The project uses Vite as the build tool, as evidenced by the `vite.config.js` file.

## Zuplo

Zuplo is used for API management and serverless functions in the Serial project.

```
zuplo/
|--- modules/
|   |--- endpoints/
|   |   |--- ai/
|   |   |--- companies/
|   |   |--- components/
|   |   |--- files/
|   |   |--- integrations/
|   |   |--- work-orders/
|   |   |--- ...
|--- config/
|   |--- routes.oas.json
|--- tests/
|--- package.json
|--- tsconfig.json
```

Key points about the Zuplo structure:

* The `modules/endpoints` folder contains various API endpoints organized by functionality.
* `config/routes.oas.json` defines the OpenAPI specification for the API routes.
* Note that a more complete OpenAPI specification is available in the documentation section of the repo.
* There's a dedicated `tests` folder for API tests.
* TypeScript is used, as indicated by the `tsconfig.json` file.

## Supabase

Supabase is used as the backend database and authentication service for the Serial project.

```
supabase/
|--- supabase/
|   |--- migrations/
|   |--- config.toml
|--- package.json
```

Key points about the Supabase structure:

* The `migrations` folder contains SQL files for database schema changes.
* `config.toml` is used for Supabase project configuration when running locally.

## Shared Components

The mono-repo also includes some shared elements:

* A `types` folder at the root level, containing shared TypeScript definitions used across the project.
* A `documentation` folder, containing project documentation using Mintlify for documentation generation.

This structure allows for a cohesive development experience, with frontend, API management, and database operations all contained within a single repository. It facilitates easier coordination between different parts of the application and streamlines the development workflow.
