Skip to content
This repository has been archived by the owner on Apr 7, 2023. It is now read-only.
/ Trading-company Public archive

Веб-приложение-имитация работы с торговым предприятием

License

Notifications You must be signed in to change notification settings

tovDmitrij/Trading-company

Repository files navigation

📑 Вкратце о проекте

image

Проект представляет собой веб-приложение, имитирующее работу менеджеров на торговом предприятии.

⌨️ Возможности приложения

Менеджеры могут
Регистрироваться на платформе. auth
Посмотреть свой профиль, где находится некоторая информация о них и кнопки для взаимодействия с предприятием. image
Подписать контракт с контрагентом. newContract
Купить или продать товары. doingTransaction
Посмотреть статистику
Какие товары есть на складе предприятия на текущий момент в виде списка и диаграммы. warehouse
Список контрактов текущего менеджера, причём как действующих, так и уже просроченных. contractList
Список всех совершённых транзакций менеджера в виде списка. transactionList
Динамику курса выбранной валюты по отношению к рублю в виде списка. courceList
Динамику цены выбранного товар в виде списка. priceList

Также на стороне БД настроена автоматическая генерация ценников (еженедельно) и курсов валют (ежедневно) по определённой траектории (вызовы процедур UpdatePrices() и UpdateCources() соответственно). Для этого использовался планировщик задач pgAgent.

Подробнее о проекте расписано непосредственно в приложении на странице "Инструкция к работе".

📃 Архитектура приложения

App
 ⸠⸺> Areas
 ⸠      ⸠⸺> Contract
 ⸠      ⸠       ⸠⸺> Controllers
 ⸠      ⸠       ⸠⸺> Models
 ⸠      ⸠       ⸠⸺> ViewModels
 ⸠      ⸠       ⸠⸺> Views
 ⸠      ⸠⸺> Course
 ⸠      ⸠       ⸠⸺> Controllers
 ⸠      ⸠       ⸠⸺> Models
 ⸠      ⸠       ⸠⸺> Views
 ⸠      ⸠⸺> Manager
 ⸠      ⸠       ⸠⸺> Controllers
 ⸠      ⸠       ⸠⸺> ViewModels
 ⸠      ⸠       ⸠⸺> Views
 ⸠      ⸠⸺> Price
 ⸠      ⸠       ⸠⸺> Controllers
 ⸠      ⸠       ⸠⸺> Models
 ⸠      ⸠       ⸠⸺> Views
 ⸠      ⸠⸺> Transaction
 ⸠      ⸠       ⸠⸺> Controllers
 ⸠      ⸠       ⸠⸺> Models
 ⸠      ⸠       ⸠⸺> ViewModels
 ⸠      ⸠       ⸠⸺> Views
 ⸠      ⸠⸺> Warehouse
 ⸠             ⸠⸺> Controllers
 ⸠             ⸠⸺> Models
 ⸠             ⸠⸺> Views
 ⸠⸺> Models
 ⸠⸺> Views
 ⸠⸺> Controllers
 ⸠⸺> Hubs
 ⸠⸺> Misc
       ⸠⸺> SQL

Приложение было поделено на области (Areas).

В папках, находящихся вне областей такие, как Models, Views, Controllers и Hubs присутствуют базовые сущности, которые используются во всех областях.

В папке Misc определены сущности, которые отвечают за кодирование и декодирование информации (Security.cs) и проверку активности сессии (Extensions.cs)

В папке Misc/SQL лежат скрипты на создание таблиц, представлений, триггеров и прочего в базе данных.

💾 Схема БД

image

Наименование таблицы Краткое описание
Cources Таблица отношений курсов валют
Currencies Таблица курсов валют
Prices Таблица ценников на товары (товары могут продаваться в разных валютах)
Products Таблица товаров
Groups Таблица групп товаров (медицина, продовольствие, ...)
Managers Таблица менеджеров
Contragents Таблица контрагентов (менеджеры ведут торговлю через них)
Banks Таблица банков
Accounts Таблица банковских аккаунтов (БА) контрагентов (без них менеджер не имеет возможности подписывать контракты с контрагентами, у к-рых просроченный или отсутствующий БА!)
Contracts Таблица контрактов между контрагентом и менеджером
Incoming Таблица покупок товаров менеджеров
Outgoing Таблица продаж товаров менеджеров
Taxes Налоги, списываемые при совершении транзакции

💻 Стек технологий

🌏 Языки

C# 11
JavaScript
Pl/pgSQL

🖥️ Фронтенд

Razor Pages

🛠️ Бекэнд

ASP.NET Core 7

💾 База данных

PostgreSQL 15

📜 Прочее

Entity Framework 7
pgAgent
SignalR
Bootstrap