Учебный проект, с бэкендом написанным на Go с использованием фреймворка Gin Gonic, MySQL SQLC, jwt-go, и с фронтендом, который разрабатывается с использованием Vue 3. Reverse Proxy - Traefik. Всё в контейнерах Docker. WIP.
Позволяет регистрироваться и входить в аккаунт пользователя или администратора. Позволяет администратору редактировать данные пользователя, отключать или удалять аккаунт пользователя. Функционала на данный момент мало, потому что добавление функционала уже является довольно простым занятием - основной задачей данного проекта являлось создание фундамента, на котором можно будет развивать весь остальной функционал по шаблонам всех эндпоинтов и прочего.
Для потенциальных работодателей: В данный момент программа имеет основной фундамент из сервировки HTML-страниц с CSS, контента, и CRUD-запросов вместе с типизированными структурами данных для лёгкой и корректной работы с БД и простого улучшения функционала приложения. При регистрации пароль шифруется в БД с помощью bcrypt. Для аутентификации создаются JWT-токены и сохраняются в cookies у клиента и в БД на сервере. Трафик раскидывается с использованием reverse proxy Traefik. Используется Docker-Compose для сборки всех контейнеров.
Клиентское приложение создано с использованием фреймворка Vue 3. Оно поддерживает вход в аккаунт, аутентификацию по токенам JWT. В текущее время разрабатывается функционал для администратора - сейчас приложение позволяет смотреть зарегистрированных пользователей и изменять информацию о пользователях.
Для навигации по приложению создан navbar и переход между страницами сделан при помощи Vue Router. Также используется Vuex для сохранения информации о текущем пользователе.
В данный момент запуск приложения через Docker-Compose не является первоочередной задачей (в моём ВУЗе нет такого требования, зато есть требования по срокам), поэтому если сейчас попробовать запустить приложение через docker-compose up
, то у вас возможно не получится подключиться к frontend-приложению. Целевая платформа на данный момент - localhost.
После клонирования репозитория (можно сделать через команду git clone https://github.com/misha1350/mospolytech-web-app.git
) перейдите в папку с проектом и выполните следующие команды:
cd ./client
npm install
npm run dev
Не забудьте перед этим установить Node.js и npm, а также Golang, потому что необходимо также запустить бэкенд-сервер:
cd ./server
go run main.go
И удостоверьтесь, что ваша база данных MySQL запущена и настроена на порт, который вы должны указать в файле ./server/.env. Через Docker тоже можно подключиться, главное указать правильный адрес, порт, логин и пароль в файле .env.
- Добавить больше страниц на Front-end и функционала вместе с ними
- Починить работу приложения, запущенного через Docker-Compose с Traefik
- Сделать Makefile'ы
- Построить пайплайн CI/CD (уже есть один workflow в Actions, но этого недостаточно)
- Сделать тесты для Middleware