{"id":19842461,"url":"https://github.com/zelflod/technopark-db-forum","last_synced_at":"2026-05-01T20:32:43.404Z","repository":{"id":121232207,"uuid":"220282799","full_name":"zelflod/technopark-db-forum","owner":"zelflod","description":"API for \"Forum\" DB","archived":false,"fork":false,"pushed_at":"2020-01-24T16:03:56.000Z","size":77,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-03-30T15:44:05.770Z","etag":null,"topics":["docker","go","materialized-paths","postgresql","swagger"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/zelflod.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2019-11-07T16:38:19.000Z","updated_at":"2020-04-01T12:33:36.000Z","dependencies_parsed_at":null,"dependency_job_id":"5fad4a86-ef2f-4714-89fb-e06cc3bd0339","html_url":"https://github.com/zelflod/technopark-db-forum","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/zelflod/technopark-db-forum","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zelflod%2Ftechnopark-db-forum","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zelflod%2Ftechnopark-db-forum/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zelflod%2Ftechnopark-db-forum/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zelflod%2Ftechnopark-db-forum/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/zelflod","download_url":"https://codeload.github.com/zelflod/technopark-db-forum/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zelflod%2Ftechnopark-db-forum/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32512664,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-30T13:12:12.517Z","status":"online","status_checked_at":"2026-05-01T02:00:05.856Z","response_time":64,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["docker","go","materialized-paths","postgresql","swagger"],"created_at":"2024-11-12T12:34:41.564Z","updated_at":"2026-05-01T20:32:43.371Z","avatar_url":"https://github.com/zelflod.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Курсовой проект \"Форум\" по курсу СУБД Технопрка Mail.ru\n\n- собрать контейнер `sudo docker build -t nozimdev/tech-db .`\n- остановить работу контейнера `docker stop nozimdev`\n- удалить контейнер `docker rm nozimdev`\n- запустить контейнер `sudo docker run -p 5000:5000 --name nozimdev -t nozimdev/tech-db`\n \n- нагрузочное тестирование `./tech-db-forum perf -u http://localhost:5000/api -i -t=8`. Скомпилированные программы для тестирования см. ниже. \n\n### Тестирование \n\nРезультат тестирования:\n\n- 2500 rps\n\nОсобенности проведения тестов:\n\n- Размер проверямой ветки репозитория, включая всю историю, не более 5MB (это довольно много: эталонная работа имеет размер ~200KB);\n- На сборку контейнера отводится не более 15-ти минут;\n- На заполнение базы отводится не более 15-ти минут;\n- Нагрузка идёт 10 раз в течение 1-ой минуты в 8 потоков. Учитывается лучший результат.\n\nТехнические характеристики стенда:\n\n- SSD: Samsung 850 Evo 250GB\n- CPU: Intel® Core™ i5-7400\n\nЛимиты на тестовое окружение:\n\n- Docker host на виртуальная машина QEMU/KVM;\n- OS: Ubuntu 18.04;\n- CPU: 2 core;\n- RAM: 1.5GB у Docker host, 1.0GB у контейнера;\n- SSD: 300 IOPS total;\n\n\n### Задание: \n\n- https://github.com/bozaro/tech-db-forum\n- https://github.com/bozaro/tech-db-hello\n- https://tech-db-forum.bozaro.ru/\n\n# [tech-db-forum](https://github.com/bozaro/tech-db-forum/)\n\nТестовое задание для реализации проекта \"Форумы\" на курсе по базам данных в Технопарке Mail.ru (https://park.mail.ru).\n\nСуть задания заключается в реализации API к базе данных проекта «Форумы» по документации к этому API.\n\nТаким образом, на входе:\n\n * документация к API;\n\nНа выходе:\n\n * репозиторий, содержащий все необходимое для разворачивания сервиса в Docker-контейнере.\n\n## Документация к API\nДокументация к API предоставлена в виде спецификации [OpenAPI](https://ru.wikipedia.org/wiki/OpenAPI_%28%D1%81%D0%BF%D0%B5%D1%86%D0%B8%D1%84%D0%B8%D0%BA%D0%B0%D1%86%D0%B8%D1%8F%29): swagger.yml\n\nДокументацию можно читать как собственно в файле swagger.yml, так и через Swagger UI (там же есть возможность поиграться с запросами): https://tech-db-forum.bozaro.ru/\n\n## Требования к проекту\nПроект должен включать в себя все необходимое для разворачивания сервиса в Docker-контейнере.\n\nПри этом:\n\n * файл для сборки Docker-контейнера должен называться Dockerfile и располагаться в корне репозитория;\n * реализуемое API должно быть доступно на 5000-ом порту по протоколу http;\n * допускается использовать любой язык программирования;\n * крайне не рекомендуется использовать ORM.\n\nКонтейнер будет собираться из запускаться командами вида:\n```\ndocker build -t a.navrotskiy https://github.com/bozaro/tech-db-forum-server.git\ndocker run -p 5000:5000 --name a.navrotskiy -t a.navrotskiy\n```\n\nВ качестве отправной точки можно посмотреть на примеры реализации более простого API на различных языках программирования: https://github.com/bozaro/tech-db-hello/\n\n## Функциональное тестирование\nКорректность API будет проверяться при помощи автоматического функционального тестирования.\n\nМетодика тестирования:\n\n * собирается Docker-контейнер из репозитория;\n * запускается Docker-контейнер;\n * запускается скрипт на Go, который будет проводить тестирование;\n * останавливается Docker-контейнер.\n\nСкомпилированные программы для тестирования можно скачать по ссылкам:\n\n * [darwin_amd64.zip](https://bozaro.github.io/tech-db-forum/darwin_amd64.zip)\n * [linux_386.zip](https://bozaro.github.io/tech-db-forum/linux_386.zip)\n * [linux_amd64.zip](https://bozaro.github.io/tech-db-forum/linux_amd64.zip)\n * [windows_386.zip](https://bozaro.github.io/tech-db-forum/windows_386.zip)\n * [windows_amd64.zip](https://bozaro.github.io/tech-db-forum/windows_amd64.zip)\n\nДля локальной сборки Go-скрипта достаточно выполнить команду:\n```\ngo get -u -v github.com/bozaro/tech-db-forum\ngo build github.com/bozaro/tech-db-forum\n```\nПосле этого в текущем каталоге будет создан исполняемый файл `tech-db-forum`.\n\n### Запуск функционального тестирования\n\nДля запуска функционального тестирования нужно выполнить команду вида:\n```\n./tech-db-forum func -u http://localhost:5000/api -r report.html\n```\n\nПоддерживаются следующие параметры:\n\nПараметр                              | Описание\n---                                   | ---\n-h, --help                            | Вывод списка поддерживаемых параметров\n-u, --url[=http://localhost:5000/api] | Указание базовой URL тестируемого приложения\n-k, --keep                            | Продолжить тестирование после первого упавшего теста\n-t, --tests[=.*]                      | Маска запускаемых тестов (регулярное выражение)\n-r, --report[=report.html]            | Имя файла для детального отчета о функциональном тестировании\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzelflod%2Ftechnopark-db-forum","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fzelflod%2Ftechnopark-db-forum","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzelflod%2Ftechnopark-db-forum/lists"}