Skip to content

jackYurchenco/amt-assistant-api

Repository files navigation

Amt-Assistant API 🚀

The backend engine for the Amt-Assistant platform, built with a focus on Domain-Driven Design (DDD) and high-performance AI integration. It processes official German correspondence, extracts semantic data, and manages structured storage.

🏗 Architecture & Design

This project follows Clean Architecture and DDD principles to ensure maintainability and scalability:

  • Domain Layer: Pure business logic, entities, and value objects.
  • Application Layer: Orchestrates use cases (e.g., AnalyzeLetter, GenerateResponse).
  • Infrastructure Layer: Implements persistence (Prisma/Supabase) and external AI adapters (Gemini API).
  • Interface Layer: REST API controllers for frontend communication.

🛠 Tech Stack

  • Framework: NestJS (Node.js)
  • Language: TypeScript
  • Database: PostgreSQL via Supabase
  • ORM: Prisma
  • AI Engine: Google Gemini Pro Flash (Multimodal)
  • Testing: Jest (Unit & Integration)

🌟 Key Features

  • Intelligent Document Extraction: Analyzes images/PDFs using LLM to identify senders and deadlines.
  • Semantic Search: Query your bureaucracy archive using natural language.
  • Automated Formal Drafts: Generates German formal responses based on letter context.
  • Strict Typing: End-to-end type safety from Domain to API.

🚀 Getting Started

  1. Clone the repository.
  2. Install dependencies: npm install
  3. Configure .env (Database URL, Gemini API Key).
  4. Run migrations: npx prisma migrate dev
  5. Start development: npm run start:dev

Compile and run the project

# development
$ npm run start

# watch mode
$ npm run start:dev

# production mode
$ npm run start:prod

Run tests

# unit tests
$ npm run test

# e2e tests
$ npm run test:e2e

# test coverage
$ npm run test:cov

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors