Веб-приложение для учета IT-оборудования в образовательной организации: реестр оборудования, инвентаризация, проблемные объекты, гарантийный контроль, аудит безопасности и управление учетными записями.
- реестр оборудования с фильтрами, карточкой объекта и историей изменений
- импорт оборудования из CSV и готовые примеры файлов для загрузки
- инвентаризационные сессии и фиксация расхождений
- отдельный экран проблемного оборудования
- гарантийный контроль и отдельный гарантийный отчет
- карточка локации со сводкой по статусам и интерактивной картой
- аутентификация, роли, блокировка после неудачных входов, 2FA по email
- журнал аудита безопасности
- управление учетными записями администратора
ASP.NET Core MVC.NET 8Entity Framework CoreSQL Server / SQL Server ExpressxUnitQuestPDF
- [SchoolEquipmentManagement.Web] UI, контроллеры, авторизация
- [SchoolEquipmentManagement.Application] — application layer, DTO, сервисы
- [SchoolEquipmentManagement.Domain] — доменные сущности и правила
- [SchoolEquipmentManagement.Infrastructure] — EF Core, БД, миграции, сидирование
- [SchoolEquipmentManagement.Tests] — unit и integration тесты
- [docs\sample-data] — примеры CSV для импорта
- Windows 10/11
- Visual Studio 2022, .NET SDK
9.0.202 - LocalDB,
SQLEXPRESSили другой доступный экземпляр SQL Server
- Откройте решение [SchoolEquipmentManagement.sln]
- Убедитесь, что startup project — [SchoolEquipmentManagement.Web.csproj]
- Проверьте строку подключения в [appsettings.json]
- Запустите приложение.
При первом старте приложение:
- применит миграции автоматически
- создаст базу
SchoolEquipmentManagementDb, если она отсутствует - добавит справочники, тестовые локации и тестовые учетные записи
По умолчанию используется:
"DefaultConnection": "Server=localhost\\SQLEXPRESS;Database=SchoolEquipmentManagementDb;Trusted_Connection=True;TrustServerCertificate=True;"Если у вас другой экземпляр SQL Server, измените DefaultConnection в [appsettings.json].
Через Package Manager Console:
Update-Database -Project SchoolEquipmentManagement.Infrastructure -StartupProject SchoolEquipmentManagement.Web -Context ApplicationDbContextЧерез dotnet ef:
dotnet ef database update --project .\SchoolEquipmentManagement.Infrastructure\SchoolEquipmentManagement.Infrastructure.csproj --startup-project .\SchoolEquipmentManagement.Web\SchoolEquipmentManagement.Web.csproj --context ApplicationDbContextМиграции лежат в [Migrations].
- Откройте решение.
- Назначьте
SchoolEquipmentManagement.Webстартовым проектом. - Нажмите
F5илиCtrl+F5.
dotnet run --project .\SchoolEquipmentManagement.Web\SchoolEquipmentManagement.Web.csprojСоздаются автоматически сидером в [DbSeeder.cs]:
admin / Admin123!tech / Tech123!responsible / Responsible123!viewer / Viewer123!
Готовые примеры файлов лежат в [docs\sample-data]
Импорт доступен из раздела оборудования через кнопку Импорт CSV.
dotnet build .\SchoolEquipmentManagement.slndotnet test .\SchoolEquipmentManagement.Tests\SchoolEquipmentManagement.Tests.csproj- Войдите под
admin. - Откройте раздел
Оборудование. - Проверьте карточку любого объекта.
- Откройте
Локациичерез ссылку из оборудования. - Проверьте
Проблемные объекты,Гарантии,Аудит. - Зайдите в
Учетные записии убедитесь, что управление пользователями доступно админу.
Сторонние зависимости подключены через NuGet. Для генерации PDF используется QuestPDF Community License.