Данный проект представляет собой систему учета радиодеталей, реализованную с помощью ASP.NET Core как Back-end часть и Vue.js как Front-end часть.
В виду ограниченного времени, а также сложности работы с самим ASP.NET Core, были реализованы не все возможности.
Авторизация довольно топорная, но без токена ты не сможешь даже посмотреть содержимое. Как и собственно добавить что-то новое.
Не была реализована система с ролями и привелегиями, чтобы обычный пользователь мог смотреть просто на содержимое. Модератор просто редактировать, а администратор добавлять новое и удалять старое.
Ниже описаны основные классы, используемые в проекте.
Класс Body представляет собой основную часть радиодетали, на которую крепятся другие компоненты.
-
Свойства:
Id(int): Уникальный идентификатор.Name(string): Название корпуса.Description(string): Описание корпуса.Img(string): Путь к изображению корпуса.SchematicImg(string): Путь к схеме корпуса.
-
Конструкторы:
Body(): Конструктор по умолчанию.Body(int id, string name, string description, string img, string schematicImg): Конструктор с параметрами.
Класс Place используется для хранения информации о месте хранения радиодеталей.
- Свойства:
Id(int): Уникальный идентификатор.Name(string): Название места.Location(string): Место склада или места хранения.
Класс Category представляет категорию радиодеталей, что позволяет их группировать для удобства учета.
-
Свойства:
Id(int): Уникальный идентификатор.Name(string): Название категории.Description(string): Описание категории.ParentCategoryId(int?): Идентификатор родительской категории (если есть).
-
Конструкторы:
Category(): Конструктор по умолчанию.Category(int id, string name, string description, int? parentCategoryId = null): Конструктор с параметрами.
Класс Component описывает отдельные компоненты радиодеталей.
- Свойства:
-
Id(int): Уникальный идентификатор. -
Name(string): Название компонента. -
Note(string): Примечание к компоненту.Price (double): Цена компонента. -
DateAudit(string): Дата последнего аудита. -
Img(string): Путь к изображению компонента. -
PinoutImg(string): Путь к изображению распиновки компонента. -
PlaceId(int): Идентификатор места хранения компонента. -
BodyId(int): Идентификатор корпуса, к которому принадлежит компонент. -
CategoryId(int?): Идентификатор категории, к которой принадлежит компонент (может быть null). -
Конструкторы:
-
Component(): Конструктор по умолчанию. -
Component(int id, string name, string note, double price, string dateAudit, string img, string pinoutImg, int placeId, int bodyId, int? categoryId): Конструктор, позволяющий создать компонент с заданными параметрами и уникальным идентификатором. -
Component(string name, string note, double price, string dateAudit, string img, string pinoutImg, int placeId, int bodyId, int? categoryId): Конструктор, позволяющий создать новый компонент без указания уникального идентификатора (идентификатор будет равен 0).
-
Класс User представляет пользователя системы.
- Свойства:
Id(int): Уникальный идентификатор.Name(string): Имя пользователя.Email(string): Почта пользователяPassword(string): Пароль (хранится в зашифрованном виде).RoleId(int): Идентификатор роли пользователя.
Класс Role определяет роли пользователей с различными правами доступа.
- Свойства:
Id(int): Уникальный идентификатор.Name(string): Название роли (например,Admin,User).Permission(int): Уровень привелегий роли.
