/simple-conf-backend

A simple community project

Primary LanguageGo

Simple Conf Backend Project

A simple project for communities. This project contain Communities, Events, Chat, Video/Voice Call and etc.

Frontend Source Code

Technical Features

  • Gorm Orm
  • MVC pattern
  • Swagger api document
  • Custom JWT authentication
  • Custom commands
  • Middlewares
  • Base response contract
  • SocketIO
  • Chat & Video Call
  • Scheduler

Clone and Run

$ git clone git@github.com:mst-ghi/simple-conf-backend.git
$ cd ./simple-conf-backend
$ cp .env.example .env #Update Database configuration
$ go mod download
$ go run . serve

Commands

  • serve Serve application
  • swag:init Generate swagger document
  • db:migrate Tables migration
  • db:seeder Insert seed data

Swagger document is available on : /api/docs/index.html

Demo

Screencast.from.2024-04-01.11-39-19.webm
simple-conf-backend-code.webm

Source structure

├── app
│   ├── auth
│   │   ├── auth.controller.go
│   │   ├── auth.dto.go
│   │   ├── auth.responses.go
│   │   ├── auth.routes.go
│   │   └── auth.service.go
│   ├── comments
│   │   ├── comments.controller.go
│   │   ├── comments.dto.go
│   │   ├── comments.response.go
│   │   ├── comments.routes.go
│   │   └── comments.service.go
│   ├── communities
│   │   ├── communities.controller.go
│   │   ├── communities.dto.go
│   │   ├── communities.response.go
│   │   ├── communities.routes.go
│   │   └── communities.service.go
│   ├── events
│   │   ├── events.controller.go
│   │   ├── events.dto.go
│   │   ├── events.response.go
│   │   ├── events.routes.go
│   │   └── events.service.go
│   ├── gateway
│   │   ├── common.go
│   │   ├── constants.go
│   │   ├── emitter.go
│   │   ├── gateway.go
│   │   └── handlers.go
│   ├── messages
│   │   ├── messages.controller.go
│   │   ├── messages.dto.go
│   │   ├── messages.gateway.go
│   │   ├── messages.response.go
│   │   ├── messages.routes.go
│   │   └── messages.service.go
│   ├── rooms
│   │   ├── events.controller.go
│   │   ├── events.routes.go
│   │   ├── rooms.dto.go
│   │   ├── rooms.response.go
│   │   └── rooms.service.go
│   ├── users
│   │   ├── users.controller.go
│   │   ├── users.response.go
│   │   ├── users.routes.go
│   │   └── users.service.go
│   └── routing.go
├── core
│   ├── bootstrap
│   │   └── bootstrap.go
│   ├── cmd
│   │   ├── migrate.go
│   │   ├── root.go
│   │   ├── seed.go
│   │   ├── serve.go
│   │   └── swag.go
│   ├── config
│   │   └── config.go
│   ├── engine
│   │   └── engine.go
│   ├── middlewares
│   │   ├── cors.go
│   │   └── jwt.go
│   ├── scheduler
│   │   ├── events.scheduler.go
│   │   └── scheduler.go
│   ├── swagger
│   │   └── swagger.go
│   ├── kernel.go
│   └── provider.go
├── database
│   ├── migrations
│   │   └── migrations.go
│   ├── models
│   │   ├── comment.model.go
│   │   ├── community.model.go
│   │   ├── event.model.go
│   │   ├── message.model.go
│   │   ├── room.model.go
│   │   ├── token.model.go
│   │   └── user.model.go
│   ├── repositories
│   │   ├── comment.repository.go
│   │   ├── community.repository.go
│   │   ├── event.repository.go
│   │   ├── message.repository.go
│   │   ├── room.repository.go
│   │   ├── token.repository.go
│   │   └── user.repository.go
│   ├── scopes
│   │   └── paginate.scope.go
│   ├── seeder
│   │   ├── seeder.go
│   │   └── user.seeder.go
│   └── database.go
├── docs
│   ├── docs.go
│   ├── swagger.json
│   └── swagger.yaml
├── pkg
│   ├── handlers
│   │   └── error.go
│   ├── helpers
│   │   ├── converters.go
│   │   ├── crypto.go
│   │   └── strings.go
│   ├── messages
│   │   └── messages.go
│   └── validation
│       ├── messages.go
│       └── validation.go
├── go.mod
├── go.sum
├── main.go
└── README.md

Author

Mostafa Gholami