Skip to content

developer-abc/SmartwayTest

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 

Repository files navigation

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

Реализовано Web API, соответствующее ТЗ.
Механизм развёртывания: скомпилировать, запустить, перейти на https://localhost:5001/swagger. В качестве СУБД используется MSSQL Local.

  • Требования к реализации аутентификации не предъявлялись.
    Авторизация без аутентификации была реализована путём передачи UserId в строке запроса.
    В реальном проекте получение UserId происходило бы с помощью объекта пользователя в Identity.
  • Согласно требованию ТЗ, загрузка группы файлов реализована одним запросом.
    В реальном проекте (с большими файлами) загружаемые файлы следовало бы разделить и загружать частями, что позволило бы добиться лучшей балансировки нагрузки по инстансам, возможности продолжить загрузку в случае её прерывания и лучшей возможности определять прогресс загрузки файла.
  • Согласно требованию ТЗ, была реализована возможность посредством запроса узнать, на сколько процентов загружен файл или группа файлов.
    В реальных проектах обычно это делается на стороне клиента.
    Для выполнения такого запроса пользователю потребуется Id файла или группы файлов, которые сервер может отправить пользователю только по завершении единственного запроса, используемого для загрузки файлов, что делает такую функциональность полностью бесполезной. Однако, прогресс так же отображается в выводимом списке файлов.
  • В данной реализации файлы сохраняются напрямую в MSSQL.
    В реальном проекте сохранение файлов лучше производить в распределённую файловую систему или объектное хранилище.
  • Согласно требованию ТЗ, пользователь может одним запросом скачать группу файлов.
    В реальных проектах скачивание группы файлов одним запросом обычно не реализуется. За один запрос скачивается один файл либо архив.

About

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

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages