czthree

module
v0.0.0-...-ded953e Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Dec 11, 2021 License: MIT

README

TEST 3

Необходимо спроектировать API сервис TODO.

Функционал:

  • [v] Несколько аккаунтов с правами "Админ" и "Пользователь".
  • Создание/Просмотр/Изменение/Удаление TODO.
  • Админ может управлять TODO всех и создавать, удалять юзеров.
  • [v] SQL база данных(мы используем MySQL, но для данного задания можно воспользоваться SQLite).
  • После создания TODO, должна быть возможность уведомить внешний сервис об этом, например сообщение в Telegram или WebHook(реализовать интерфейс для этого, сама реализация отсылки не требуется).

Восстановления пароля и работа с email, в данном задании, не требуется.

Сейча можно увидеть увидеть:

  • [v] Project Layout.
  • [v] Какие используются внешние зависимости.
  • [v] Как организованно внедрение зависимостей(Dependency Injection).

Системные требования:

  • Go 1.16.9(max - bug occured with jose2go with go1.16.11)
  • MySql 8.x (no ssl)
  • Linux x32,x64
  • Утилита make (для обработки файла Makefile)

Для выполнения работы используются https://github.com/qiangxue/go-rest-api и некоторые важные папки из https://github.com/golang-standards/project-layout Некоторые свои изменения я опсал в своем темплейте https://github.com/tvitcom/fusion-framework и применяю его в своих пет проектах.

Настройка

  1. создать mysql бд czthree и пользователя czthree с паролем.
  2. переименовать файл configs/_dev.yml в ./configs/dev.yml
  3. прописать пароль для соединения с бд
  4. импортировать дамп ./data/czthree_db_init.sql
  5. инициализировать go mod командой: go mod tidy
  6. выполнить команду: make dev
  7. запустить броузер с адресом http://localhost:3000/
  8. войти с пользователем admin и паролем: pass_to_admin

Directories

Path Synopsis
cmd
internal
config Module
dto Module
entity Module
errors Module
healthcheck Module
test Module
todos Module
user Module
pkg
accesslog Module
dbcontext Module
log Module
pagination Module

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL