Skip to content

Arman001011/organizations

Repository files navigation

Примечания

В описании задания как пример зданив написано "o Адрес: Например - г. Москва, ул. Ленина 1, офис 3". По моему офис 3 не харакеризует зднаия, не могут несколько компании находится в одном офисе, по этому все так и добавил поле address_2, но оставил пустым. Так же добавил поле city. Координаты можно было написать в одном SPATIAL поле, но у меня они имеют две разные колонки.

Задание требует создания 6-и методов, но по сути 5 из них один и тот же метод - список организацией по разным фильтрам. Я думаю не правильно написать 5 разных эндпоинтов для них, а нужно только менять фильтры. К тому же люди могут захотеть фильтрировать сразу по нескольким фильтрам: что мы будем делать? Отправить несколько запросов и обработывать данные с помощью PHP? Нет! Это не правильно. И коды так выглядят красиво: маленькая функция в контроллере и отдельная scopeFilter функция в модели. Чтобы тестировать на Сваггер ЮАй, надо оставить значения только для нужных фильтров. Я так же добавил коллекцию Постмана, где можно отдельно отправить запросы для разных фильтров, можете импортировать и использовать.

Installation

To install the project with Docker please make sure you have installed it on your working machine.

Clone the repo

cd <your-projects-directory>

git clone https://github.com/Arman001011/organizations.git

cd organizations

Create .env file and then edit it to configure database settings and other environment-specific variables

cp .env.example .env

Build the Docker images and start the containers for the Laravel app and MySQL database.

docker-compose up --build -d

Enter the app container

docker exec -it laravel_app bash

Install composer

composer install

Run migrations

php artisan migrate

Run seeders

php artisan db:seed

Make storage accessible

php artisan storage:link

Now the app will be available at http://localhost:8080. And API documentation will be visible at http://localhost:8080/api/documentation.

If you need to stop the containers, you can run docker-compose down and run docker-compose up -d to restart them. Artisan commands can be run from outside of containers like docker exec -it laravel_app php artisan migrate.

Тестовое задание "Создание REST API приложения"

Описание.
Необходимо реализовать REST API приложения для справочника Организаций, Зданий, Деятельности.
1.	Организация - Представляет собой карточку организации в справочнике и должна содержать в себе следующую информацию:
o	Название: Например ООО “Рога и Копыта”
o	Номер телефона: организация может иметь несколько номеров телефонов (2-222-222, 3-333-333, 8-923-666-13-13)
o	Здание: Организация должна находится в одном конкретном здании (Например, Блюхера, 32/1)
o	Деятельность: Организация может заниматься несколькими видами деятельностей (Например, “Молочная продукция”, “Мясная продукция”)
2.	Здание - Содержит в себе как минимум информацию о конкретном здании, а именно:
o	Адрес: Например - г. Москва, ул. Ленина 1, офис 3
o	Географические координаты: Местоположение здания должно быть в виде широты и долготы.
3.	Деятельность - позволяет классифицировать род деятельности организаций в каталоге. Имеет название и может в древовидном виде вкладываться друг в друга. Пример возможного дерева деятельности:
  - Еда
    - Мясная продукция
    - Молочная продукция
  - Автомобили
    - Грузовые
    - Легковые
      - Запчасти
      - Аксессуары

Функционал приложения.
Взаимодействие с пользователем происходит посредством HTTP запросов к API серверу с использованием статического API ключа. Все ответы должны быть в формате JSON. Необходимо реализовать следующие методы:
•	список всех организаций находящихся в конкретном здании
•	список всех организаций, которые относятся к указанному виду деятельности
•	список организаций, которые находятся в заданном радиусе/прямоугольной области относительно указанной точки на карте. список зданий
•	вывод информации об организации по её идентификатору
•	искать организации по виду деятельности. Например, поиск по виду деятельности «Еда», которая находится на первом уровне дерева, и чтобы нашлись все организации, которые относятся к видам деятельности, лежащим внутри. Т.е. в результатах поиска должны отобразиться организации с видом деятельности Еда, Мясная продукция, Молочная продукция.
•	поиск организации по названию
•	ограничить уровень вложенности деятельностей 3 уровням

Задание
•	Спроектировать БД + Создать необходимые миграции + Заполнить БД тестовыми данными
•	Реализовать API согласно разделу Функционал приложения
•	Завернуть приложения в Docker контейнер, чтобы его можно было развернуть на любой машине (Если необходимо, то написать инструкцию по разворачиванию)
•	Добавить в проект документацию Swagger UI или Redoc с описанием всех методов приложения.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages