Code Monkey home page Code Monkey logo

petsearchbackend's People

Contributors

a-poliakov avatar comratvlad avatar dependabot[bot] avatar lara0yu avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

petsearchbackend's Issues

Взаимодействие синхронных REST запросов с асинхронными сервисами

  • Сервис для ожидания результата асинхронного запроса к микросервису распознавания изображений животных
  • Сериализация/десериализация изображений и доработка механизма отправки сообщений в очередь redis
  • Сделать rest методы асинхронными

Исследование возможностей различных фреймворков.

На данном этапе решили создать такую модель: клиент считает по входному видеопотоку дескрипторы, отправляет на сервер, где по нему ищется соответствие в базе. Соответственно вопрос: дают ли готовые фреймворки возможность получать дескрипторы по фотографиям лиц и если да, то какие? Если нет, то создать свою такую модель.

Разработка rest-api для авторизации (frontend + backend)

Необходимо реализовать:

  • методы авторизации + сериализация/десериализацию передаваемых данных в Google Protocol Buffers.
  • Добавить поддержку безопасного соединения по https.
  • интегрировать с Spring Security на backend-е

Для регистрации пользователя создать метод register. Для авторизации использовать метод login из spring security.

Настройка и подключение TF Serving

  • Настройка TF Serving и загрузка модели
  • Подключение tf serving к микросервису распознавания питомцев по http (с помощью flask) либо по grpc (добавить описание сообщений и сервиса передачи)

Обучение разработчика Алексея Кипреева

Необходимо изучить:

  • Java Core (уметь написать многопоточный код, правильно расставлять синхронизации и блокировки, уметь реализовывать код в ООП стиле, писать модульные тесты с JUnit)
  • Научиться использовать git и github, работать с git из командной строки и из IDEA
  • Изучить основы web-разработки на java (сервлеты, фильтры, сессии, куки,...)
  • Научиться работать с базами данных (JDBC и изучить ORM Framework Hibernate + JPA + Spring Data JPA)
  • Spring and DI/IoC, Spring Web + REST

Реализовать в storage-service одновременную работу spring-data-jpa для postgresql и mongodb

Сейчас storage-service падает при старте из-за некорректной конфигурации персистентности. Необходимо исследовать причину падения и исправить.

How to demo: Сервис стартует без ошибок. Для postgresql и mongodb подтягивается корректная конфигурация.

Наскрапить датасет с породами собак.

Отправная точка нашего датасета - соревнование Dog Breed Identification - https://www.kaggle.com/c/dog-breed-identification. "Словарь" пород содержит 120 классов, каждый их которых необходимо расширить хотя бы на 100-200 сэмплов (больше - лучше). Для начала это можно сделать при помощи библиотеки для скрапинга с google images - https://github.com/hardikvasa/google-images-download. В директории с проектом, в папке data необходимо создать папку images, в которой, для каждой из 120-ти пород также создать свою папку. В каждой такой папке и будут помещаться фотографии с собачками. Разметку необходимо хранить в директории data/labels.csv по примеру того, как это сделано в соревновании.

Обучить классификатор пород.

Добиться качества классификации пород ~0.98 на отложенной выборке. Изучить дескрипторы получившейся модели на предмет возможности их использования для поиска определенной собачки по базе.

Заготовка фронтенда (Angular + NodeJS + React)

Добавить заготовку для веб-морды проекта

  • добавить пустой проект
  • сконфигуровать базовую структуру основной страницы (захват видео + кнопки действий)
  • добавить заглушку rest-api для связи с backend

доработать механизм тегов

необходимо убрать захардкоженные теги из entity объявления. вместо них должен быть реализован сервис, создающий и наполняющий стандартные теги для объявления при создании объявления. Также должна быть возможность получить нужный системный тег из объявления, а также значение произвольного пользовательского тега по его названию.

Выбрать способ реализации DTO объектов в сервисах

Сейчас имеются DTO, например, AdvertDto implements Serializable.

Возможны два варианта дальнейшего их использования в проекте:

  1. Используем lombok и общий модуль common. Какой-то большей универсальности не требуется.
  2. перевести DTO как наследников DtObject -> мапа пропертей - интерфейс, который можно будет использовать во всех проектах (находится в модуле common).

Настроить Spring Security на backend

  • добавить Spring Security, сконфигурировать
  • настроить механизм стандартной авторизации и аутентификации с логином и паролем, настроить custom user service
  • добавить rest-endpoint и авторизацию через rest

Реализовать прототип саги для CRUD операций с объявлениями

Для обмена сообщениями используется RabbitMQ (стоит также обдумать использование Redis).
Реализация прототипа подразумевает наличие в модуле common общего для всех сервисов интерфейса Saga и механизмов взаимодействия с очередью.
Также должно быть переработан механизм персистентности (сохраняем в бд события, а не бизнес-объекты)

рефакторинг репозитория: разделить на отдельные репозитории для компонентов системы

  • создать для каждого из компонентов (узлов) системы по репозиторию
  • перенести код, примеры, наработки из соответствующих папок данного репозитория в новые репозитории

доска проекта остается общей для следующих компонентов системы:

  • API Gateway
  • микросервисы
  • веб-фронтенд

варианты и сценарии использования

  • Определить пользователей системы, API взаимодействия с системой
  • Модульная структура проекта: модули и их взаимодействие. Создание заглушек проектов (хотя бы папки)

поправить конфигурацию eventuate.tram.sagas

В сервисе advert-service необходимо поправить конфигурацию eventuate.tram.sagas. Сейчас SagaManager ожидает получить на вход SagaInstanceRepository, которого нет в контексте.

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.