Skip to content

FluentlyOrg/Fluently-Backend

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

32 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Setup and Usage

Requirements

  • Go 1.23+
  • PostgreSQL
  • Redis

0. Git

Сделал ветку develop От неё уже есть две ветки:

  • feature/models, там пишешь код моделек
  • feature/handlers - код хендлеров
  • Можешь создавать по такому же принципу ветки и делать в них

1. Install Dependencies

go mod tidy

2. Run in Development Mode

air

Убедись, что у тебя установлен air. Если нет — установи:

go install github.com/air-verse/air@latest

3. Generate Swagger Docs

swag init --generalInfo cmd/main.go --output docs

Убедись, что у тебя установлен swag:

go install github.com/swaggo/swag/cmd/swag@latest

Swagger-документация будет доступна по маршруту /swagger/index.html, если подключён httpSwagger.Handler.

4. Example of logging

	logger.Log.Info("Logger initialization successful!")
	logger.Log.Info("App starting",
		zap.String("name", config.GetAppName()),
		zap.String("address", config.GetAppHost()+":"+config.GetAppPort()),
		zap.String("dsn", config.GetPostgresDSN()),
	)

Project Structure

🗂️ Project Structure — fluently/go-backend

.
├── cmd/                            # Точка входа в приложение
│   └── main.go                     # Запуск HTTP-сервера, зависимостей и маршрутов
├── docs/                           # Swagger-документация (сгенерировано через swag)
│   ├── docs.go
│   ├── swagger.json
│   └── swagger.yaml
├── go.mod, go.sum                  # Зависимости проекта (модуль Go)
├── internal/                       # Основная бизнес-логика (handlers, сервисы, доступ к данным)
│   ├── api/
│   │   └── v1/
│   │       ├── handlers/           # HTTP-обработчики (controllers)
│   │       │   └── *.go            # Например: word_handler.go, user_handler.go и т.д.
│   │       └── routes/             # Роутинг chi (RegisterWordRoutes, и т.п.)
│   │           └── *.go
│   ├── config/                     # Загрузка конфигурации (viper)
│   │   └── config.go
│   ├── db/                         # Инициализация базы, миграции, подключения (ещё пусто)
│   ├── repository/                 # Слой доступа к данным (models, postgres-реализации, DTO)
│   │   ├── models/                 # GORM-модели таблиц
│   │   ├── postgres/               # Реализации репозиториев через GORM
│   │   └── schemas/                # DTO-схемы (вход/выход)
│   ├── router/                     # Сборка chi.Router
│   │   └── router.go
│   ├── swagger/                    # Связь между swagger-доками и chi (опционально)
│   └── utils/                      # Хелперы, утилиты, форматирование, ошибки и т.д.
├── migrations/                     # SQL- или go-модули для миграций базы данных
├── pkg/
│   └── logger/                     # Zap-логгер (переиспользуемый)
│       └── logger.go
└── README.md                       # Главный файл описания проекта

Общая концепция

  • internal/ — основная логика проекта, разбитая по слоям
  • repository/ — реализация работы с БД: модели, схемы и репозитории
  • api/v1/ — REST API (обработчики + маршруты)
  • pkg/ — внешний код, пригодный для повторного использования

Dependencies

  • Chi Router: Lightweight, idiomatic HTTP router
  • GORM: ORM library for Golang
  • Viper: Configuration solution
  • Zap: Structured logging
  • Swaggo: Swagger 2.0 generator for Go
  • Air: Live reload for Go apps

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •