Skip to content

Проект фонда Александра Невского

Notifications You must be signed in to change notification settings

fasgetz/NevskyFond

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

18 Commits
 
 
 
 
 
 
 
 

Repository files navigation

NevskyFond

LogoNevsky

Тестовое задание

Приветствую! В рамках одного из технических собеседований мне было предложено разработать современное решение, основанное на микросервисной архитектуре, с взаимодействием через шину. Я принял вызов и с уверенностью решил, что благодаря моему опыту я способен успешно реализовать и продемонстрировать данную концепцию)

Описание проекта

Для того, чтобы не делать типичные задания с пользователями и группами, я решил, что могу сделать что-то полезное для будущего проекта благотворительного фонда Александра Невского. Этот проект будет полноценной экосистемой сервисов и продуктов для Православного мира

Функциональность

Микросервис Encyclopedia

Этот микросервис будет представлять из себя полноценный CRUD по REST API, охватывающий широкий функционал в будущем. В его контексте будут рассмотрены данные о религиозных учреждениях, молитвах, иконах, святых и православных праздниках. Планируется развитие и расширение функционала для обеспечения полноценной поддержки различных аспектов религиозной тематики

ChurchsController

Представляет собой набор методов, которые обеспечивают получение информации о религиозных учреждениях.

  • Метод GET используется для извлечения данных из базы данных энциклопедии.

  • Extended/{id} предоставляет возможность извлечения данных из базы данных энциклопедии. При использовании фильтра для получения комментариев, данные могут также быть извлечены из микросервиса SocialNetwork

Микросервис SocialNetwork

Этот микросервис будет представлять из себя полноценный CRUD по REST API, охватывающий широкий функционал в будущем для создания внутренней социальной сети, где пользователи смогут оставлять свои комментарии по данным из энциклопедии, а также взаимодействовать и общаться друг с другом. Планируется развитие и расширение функционала для обеспечения полноценной поддержки различных аспектов, как у социальной сети

Consumers

  • GetCommentsConsumer предназначен для межсервисного получения данных о комментариях, относящихся к религиозному учреждению по шине

Технологический стек

Проект разработан с использованием современных технологий и инструментов на 2023 год:

  • ASP.NET 7: Веб-фреймворк, обеспечивающий высокую производительность и гибкость при создании веб-приложений.

  • MediatR: Для управления взаимодействием между объектами, обеспечивающий легкость расширения и поддержку многозадачности.

  • MassTransit: Распределенная система обмена сообщениями, облегчающая интеграцию микросервисов и повышающая надежность.

  • AutoMapper: Библиотека для автоматического сопоставления объектов, уменьшая сложность и повышая производительность кода.

  • Serilog: Платформа для логирования, обеспечивающая структурированный вывод и поддержку различных целей логирования.

  • Entity Framework: ORM-фреймворк для работы с базами данных, упрощающий доступ и манипуляции с данными.

  • Docker: Платформа для контейнеризации приложений, обеспечивающая легкость развертывания и управления зависимостями.

  • PostgreSQL: Реляционная база данных с открытым исходным кодом, обеспечивающая надежное хранение и управление данными.

  • FluentValidation: Библиотека для валидации данных в приложении, с применением языка Fluent API для удобного описания правил валидации.

  • xUnit: Фреймворк для юнит-тестирования в .NET, обеспечивающий легкость написания и выполнения тестов.

About

Проект фонда Александра Невского

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published