GithubHelp home page GithubHelp logo

zensam7 / education Goto Github PK

View Code? Open in Web Editor NEW
1.0 1.0 0.0 1.07 MB

Сайт на Golang по типу Habra (в основном делаю упор на backend)

Go 95.55% Makefile 2.57% Dockerfile 0.45% HTML 1.10% Shell 0.33%
golang site

education's Introduction

Делаю бекенд учебного сайт

Чему я тут научился (что я тут использовал):

  • Кончно же Golang (интерфейсы, контексты, горутины ...)

  • Сервер на gRPC с HTTP Gateway

  • Зачем-то сделал ещё и RESTful API на фреймворке Gin

  • Авторизация по 2м токенам (paseto или jwt) и верификация почты

  • Использовал Redis и как брокер сообщений, и как кэш

  • Развернул приложение в Docker (написал Dockerfile и docker-compose)

  • Mock-тесты и обычные unit-тесты, с общим покрытием ~40%

  • Поработал с CI/CD (GitHub Actions)

  • Лучше освоил linux

  • Имеется репликация данных в отдельный контейнер

  • SQLC для генерации кода на Golang из SQL запроса

  • Где необходимо, сделал транзакции

  • Бд реализовал на PostgreSQL

    Мелочи:

  • Сделал автогенерацию документации (в ./doc/)

  • >6000 строк отлаженного, работающего, лично написанного кода (+5500 сгенерированного)

  • Понял что Makefile — очень удобная штука

  • Migrate для, собственно, миграций

  • Настроил красивый логгер

Как запустить:

Можно запустить через Docker Compose:

docker compose up

Или можно выполнить команду на ubuntu:

make all

Убрать всё что было создано:

make clean

Сам проект:

Архитектура бд:

education's People

Contributors

zensam7 avatar dependabot[bot] avatar

Stargazers

 avatar

Watchers

 avatar

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.