Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

romanshal/AMTestProject

Open more actions menu

Repository files navigation

AMTestProject

Проект для демонстрации и тестирования архитектурных решений с использованием Docker.

📦 Требования

Убедитесь, что установлены последние версии.

🧰 Технологии проекта

В проекте используются следующие технологии и инструменты:

  • Docker & Docker Compose
    Для контейнеризации и оркестрации сервисов. Обеспечивает воспроизводимость окружения и простоту запуска.

  • .NET / C# (Backend API)
    Бэкенд реализован на C#, с акцентом на чистую архитектуру, строгую типизацию и модульность.
    Используются:

    • ASP.NET Core для построения REST API
    • Redis для кэширования и оптимизации производительности
    • PostgreSql для бд
    • MediatR для реализации CQRS
    • AutoMapper для автоматического маппинга моделей
  • Angular (Frontend)
    Клиентская часть построена на Angular с TypeScript.
    Основные практики:

    • RxJS для реактивного программирования
    • Angular Material для UI-компонентов
    • Строгая типизация и модульная архитектура
    • Кастомные валидаторы и декларативные формы
  • PostgreSQL
    Реляционная база данных для хранения основной бизнес-информации.
    Особенности:

    • Надёжность и транзакционная целостность (ACID)
    • Поддержка сложных запросов и индексов
    • Используется как основной источник данных для backend API
    • Данные хранятся в отдельном volume, что обеспечивает сохранность при перезапуске контейнеров
  • Redis
    Хранилище для кэша и быстрой работы с временными данными.

  • Grafana
    Используется для визуализации метрик и мониторинга состояния системы.
    Доступна по адресу http://localhost:3000 (логин/пароль: admin / admin).

  • Prometheus
    Может использоваться как источник данных для Grafana и сбора метрик с сервисов.

  • Jaeger
    Система распределённого трейсинга.
    Используется для:

    • Отслеживания запросов через все микросервисы
    • Диагностики производительности и поиска узких мест
    • Визуализации цепочек вызовов (spans и traces)
      По умолчанию доступен по адресу http://localhost:16686.

🔑 Ключевые принципы

  • Чистая архитектура: разделение слоёв и строгие границы между инфраструктурой и бизнес-логикой.
  • Повторное использование: универсальные UI-компоненты и сервисы.
  • Устойчивость: retry-политики, централизованная обработка ошибок.
  • Масштабируемость: модульная структура и возможность лёгкого расширения.
  • Наблюдаемость: метрики (Prometheus + Grafana) и трейсинг

🚀 Запуск проекта

  1. Клонируйте репозиторий: git clone https://github.com/romanshal/AMTestProject.git cd AMTestProject
  2. Запустите сервисы: docker-compose up -d

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Morty Proxy This is a proxified and sanitized view of the page, visit original site.