https://github.com/olteffe/avitochat
Test assignment for an intern at Avito
https://github.com/olteffe/avitochat
api echo go gorm testify
Last synced: 2 months ago
JSON representation
Test assignment for an intern at Avito
- Host: GitHub
- URL: https://github.com/olteffe/avitochat
- Owner: olteffe
- Created: 2021-08-12T19:35:27.000Z (over 4 years ago)
- Default Branch: master
- Last Pushed: 2021-12-19T01:35:56.000Z (over 4 years ago)
- Last Synced: 2024-06-20T05:26:31.904Z (almost 2 years ago)
- Topics: api, echo, go, gorm, testify
- Language: Go
- Homepage:
- Size: 438 KB
- Stars: 1
- Watchers: 1
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: readme.md
Awesome Lists containing this project
README
Тестовое задание на позицию стажера-бекендера
==============================================
Задание доступно по [ссылке](https://github.com/olteffe/avitochat/blob/master/task.md)
Примененные технологии
-----------------------
1. REST API.
2. Golang.
3. ORM.
4. Чистая архитектура.
5. Шаблон [Go Project Layout](https://github.com/golang-standards/project-layout).
8. [Кодогенерация](https://github.com/openapitools/openapi-generator) на основе OAS3.0.
6. Redis.
7. PostgreSQL.
9. Docker.
Зависимости
------------
Использованы следующие внешние библиотеки:
* [Echo](https://github.com/labstack/echo) - web framework.
* [Gorm](https://github.com/go-gorm/gorm) - ORM для Golang.
* [Google/uuid](https://github.com/google/uuid) - генерирует и проверяет UUID на основе RFC4122 и DCE 1.1.
* [Mockgen](https://github.com/golang/mock) - генератор кода для имитации интерфейсов Golang.
* [Testify](https://github.com/stretchr/testify/) - framework для написания тестов на Golang.
Документация
--------------
Документация представлена в виде OpenAPI [спецификации](https://github.com/olteffe/avitochat/blob/master/api/openapi.yaml).

ER-диаграмма
--------------

Архитектура приложения
-----------------------

Этапы разработки
-----------------
1. Анализ ТЗ.
2. Разрабатываем архитектуру(определяемся со стеком технологий). Рисуем диаграммы: бд, приложения
3. Создаем спецификацию OAS.
4. Генерируем шаблон сервера.
5. Программируем.
6. Пишем тесты.
7. Разворачиваем приложение в дев среде(docker контейнеры).
8. Исправляем баги
9. Используем танк/ApacheBench.