Giter Club home page Giter Club logo

studentservice-testtask's Introduction

Тестовое задание - сервис ведения студентов

Разработать сервис отвечающий за ведение данных студентов.

Сервис ответственен за сущности:

  1. Студент a. ID (required, PK). Можно использовать любой вариант. Это может быть как GUID, так и обычный int/long + increment. Это поле системное, изменение данного поля не допускается. b. Пол (обязательное поле). c. Фамилия (обязательное, максимальная длина 40 символов) d. Имя (обязательное, максимальная длина 40 символов) e. Отчество ( не обязательное, максимальная длина 60 символов) f. Уникальный идентификатор студента (not required, должен быть уникальным в рамках всех студентов, минимальная длина 6 символов, максимальная длина 16). Опциональный, например мы хотим задать для студента позывной, но не хотим чтобы два студента были с одинаковыми позывными.
  2. Группа a. ID (required, PK). Можно использовать любой вариант. Это может быть как GUID, так и обычный int/long + increment. Это поле системное, изменение данного поля не допускается. b. Имя группы. (обязательное, максимальная длина 25 символов)

Студент может находится одновременно в нескольких группах (многие ко многим).

Предусмотреть все виды операций над сущностями (CRUD).

Контроллеры должны содержать следующие методы:

  1. Создание/удаление/редактирование студента
  2. Создание/удаление/редактирование группы.
  3. Добавление/Удаление студента из группы.
  4. Получение списка студентов с возможностью фильтрации по полям (Пол, ФИО, уникальный идентификатор, название группы) и ограничением по результату (пагинация). a. Результатом должен список где каждый элемент содержит поля: ID, ФИО, уникальный идентификатор, список групп через запятую.
  5. Получение списка групп с возможностью фильтрации по полю «Имя группы». a. Результатом должен список где каждый элемент содержит поля: ID, Имя группы, кол-во студентов в группе.

Общие требования к коду:

  1. Dotnet core 2.0 +
  2. EF
  3. JSON как формат отдачи данных.

Дополнительно:

  1. Docker
  2. Swagger
  3. Unit testing.
  4. Защитить контроллеры с помощью JWT.

Выделить как минимум три слоя

  1. Domain Layer
  2. Data Layer
  3. Presentation Layer

Попытаться соблюсти правила зависимостей Clean Architecture https://proandroiddev.com/clean-architecture-data-flow-dependency-rule-615ffdd79e29

  1. Presentation Layer depends on Domain Layer.
  2. Data Layer depends on Domain Layer.
  3. Domain Layer does NOT depend on Data Layer.

studentservice-testtask's People

Contributors

kosmikos avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.