"Финансы поют романсы? - тогда тебе поможет наш проект!"
MyFinProject Backend — это серверная часть приложения для управления личными финансами. Проект разработан с использованием ASP.NET Core 3.1 и предназначен для обработки операций, связанных с доходами, расходами и инвестициями пользователей.
- Язык программирования: C#
- Фреймворк: ASP.NET Core 3.1
- База данных: PostgreSQL SQL Server
-
Controllers
Принимают входящие HTTP-запросы. Поддерживают REST-стиль, четко разделяют CRUD и обеспечивают простоту интеграции со Swagger'ом. -
Services
Бизнес-логика. Не просто классы, а мыслящие механизмы, отделенные от деталей реализации. Работают через интерфейсы, потому что SOLID. -
Models
Entity -
DTO
Модели, которые принимает пользователь?
-
ApplicationDbContext
Класс-контекст, через который идут все обращения к БД. Настроен на строгую миграционную дисциплину.
- Azure Active Directory (Azure AD): для аутентификации API.
- Managed Identity: для безопасного доступа к Key Vault и SQL Database без хранения секретов в коде.
Элемент | Метод | Комментарий |
---|---|---|
Защита API | Middleware с проверкой JWT и Audience | Без валидного токена — никакого JSON |
HTTPS | Включен по умолчанию | --------- |
CORS | Гибко настраиваемый через Startup.cs |
Только доверенные домены, только по делу |
Чтение чеков - https://proverkacheka.com
- .NET Core SDK 3.1
- SQL Server (PosgreSQL)
- Клонировать репозиторий
git clone https://github.com/MyFinProject/Backend.git cd Backend
- Настроить строку подключения
Откройте appsettings.Development.json и пропишите:
"ConnectionStrings": { "DefaultConnection": "Server=localhost;Database=MyFinDb;User Id=sa;Password=YourStrong@Passw0rd;" }
- Применить миграции и инициализировать базу
dotnet ef database update
- Запуск приложения
dotnet run --project Api
├── Api/
│ ├── Controllers/ # Обработчики HTTP-запросов
│ ├── DTO/ # Модели для связи с пользователем
│ ├── Models/ # DTO и сущности базы данных
│ ├── Services/ # Бизнес-логика и взаимодействие с данными
│ ├── Data/ # Контекст базы данных
│ ├── Migrations/ # Миграция
│ ├── Mappers/ # Переход от моделей к DTO и обратно
│ ├── Program.cs # Точка входа приложения
│ ├── image/ # EDR DataBase
│ ├── Reposytore/ # Связь с базой данных
│ ├── Extensions/ # Позволяет получить имя пользователя из claim GivenName одним вызовом user.GetUsername().
├── Properties/
│ └── launchSettings.json # Настройки запуска для различных сред
├── appsettings.json # Основные настройки приложения
├── appsettings.Development.json # Настройки для среды разработки
├── Program.cs # Файл решения Visual Studio
├── .gitignore # Файлы и папки, игнорируемые Git
└── README.md # Документация проекта