avicenna/GEMINI.md

83 lines
3.1 KiB
Markdown

# Avicenna Project Documentation
This document provides a comprehensive overview of the Avicenna project, its components, and instructions for development and deployment.
## Project Overview
The Avicenna project is a multi-component system composed of a web application, a data connector, a data transformation service, and the necessary infrastructure to run them. The project is divided into the following main parts:
- **service**: Contains the core application services, including the frontend dashboard and the backend data connector.
- **plattform**: Includes the data transformation and integration services.
- **infrastructure**: Defines the infrastructure as code for deploying the project.
## Services
### App Hub Dashboard (Angular Frontend)
The App Hub Dashboard is the user-facing web application for the Avicenna project, developed with Angular.
- **Location**: `service/app-hub/dashboard`
- **Key Files**:
- `angular.json`: Angular project configuration.
- `package.json`: Project dependencies and scripts.
- `tailwind.config.js`: Tailwind CSS configuration.
#### Commands
- **Run development server**: `ng serve`
- **Build for production**: `ng build`
- **Run unit tests**: `ng test`
### Data Hub Connector (NestJS Backend)
The Data Hub Connector is a NestJS-based backend service responsible for managing data, with database interactions handled by Prisma.
- **Location**: `service/data-hub/data-connector`
- **Key Files**:
- `nest-cli.json`: NestJS project configuration.
- `package.json`: Project dependencies and scripts.
- `prisma/schema.prisma`: Database schema definition.
#### Commands
- **Install dependencies**: `npm install`
- **Run in development mode**: `npm run start:dev`
- **Run in production mode**: `npm run start:prod`
- **Run tests**: `npm run test`
### Synapse (Go Plattforms)
Synapse is a data transformation service written in Go, responsible for processing and integrating data from various sources.
- **Location**: `plattform/synapse`
- **Key Files**:
- `go.mod`: Go module definition.
- `cmd/synapse/main.go`: Main application entry point.
#### Commands
- **Run the application**: `go run ./cmd/synapse`
- **Build the application**: `go build -o synapse ./cmd/synapse`
## Infrastructure
The infrastructure for the Avicenna project is managed using Pulumi and Ansible, ensuring a reproducible and automated deployment process.
- **Location**: `infrastructure`
- **Key Components**:
- **Pulumi**: Used for provisioning cloud resources.
- **Ansible**: Used for configuring services like Traefik, Portainer, and Kestra.
## Workflows
The project uses Kestra for orchestrating complex workflows, such as ETL processes and ticket management.
- **Location**: `service/workflows`
- **Key Files**:
- `avic-etl.yml`: Defines the ETL workflow.
- `avic-tickets.yml`: Defines the ticket management workflow.
## Development
To work on the Avicenna project, follow the instructions in the respective service directories. Ensure you have the required runtimes and dependencies installed, such as Node.js, Go, and the Angular CLI.