🚀 Backend for Online Courses Builder | SaaS Product

Backend app for Online Course Constructor Platform

Build & Run (Locally)

Prerequisites

  • go 1.15
  • docker
  • golangci-lint (optional, used to run code checks)

Create .env file in root directory and add following values:

MONGO_URI=mongodb://mongodb:27017
MONGO_USER=admin
MONGO_PASS=qwerty
PASSWORD_SALT=
JWT_SIGNING_KEY=
SENDPULSE_LISTID=
SENDPULSE_ID=
SENDPULSE_SECRET=
HTTP_HOST=localhost
FONDY_MERCHANT_ID=1396424
FONDY_MERCHANT_PASS=test
PAYMENT_CALLBACK_URL=/api/v1/callback/fondy
PAYMENT_REDIRECT_URL=https://example.com/

Use make run to build&run project, make lint to check code with linter.

TODO: Describe project architecture

Owner
Maksim Zhashkevych
software engineer | product manager | creator
Maksim Zhashkevych
Comments
  • Refactor/path

    Refactor/path

    Ребят, привет! Предлагаю часто повторяющиеся пути вынести в константу, обычно статические анализаторы реагируют на подобное - как дубликат. Так же предлагаю - отказаться от слеша вначале. Код будет немного почище

  • Graceful shutdown

    Graceful shutdown

    Ребят, привет! https://github.com/zhashkevych/courses-backend/blob/93261b2403c8198ec1f123b883481be30e5ff1d6/internal/app/app.go#L120 - здесь прилетает ошибка http.ErrServerClosed - и это нормально - потому что сервер реально закрывается - может добавить еще проверку?

  • Domain model Question

    Domain model Question

    https://github.com/Creatly/creatly-backend/blob/2f0ca56eddd77fcf32f8d2c78f38115bee2a1009/internal/domain/student.go#L13

    @zhashkevych

    Пытаюсь реализовать похожую структуру у себя в проекте

    Скажи плиз в этом есть какой то сакральный смысл чтобы хранить пользователей разных типов по разным моделям? Использование ролей как то ломает бизнес логику или усложняет реализацию?

  • Student Lessons

    Student Lessons

    • GET /students/lessons/{id} returns lesson by id and sets lastOpened to the lessonId
    • POST /students/lessons/{id}/finished sets lessons as finished
    • Added new collection studentLessons
    • Added tests for the new endpoints
    • Added new method GetByLesson for ModuleService
    • Added new methods GetLesson and SetLessonFinished for StudentService
    • Added new private helper method isLessonAvailable for StudentService
    • Regenerated swagger
  • Tests

    Tests

    • Refactored services -> handlers injection
    • Added make targets to initialize testing DB container w/ initial data & run integrational tests
    • Added integration testing framework totests/
    • Covered student sign up logic w/ test
  • Can not launch it localy

    Can not launch it localy

    Hello @zhashkevych I've tried to launch your project locally but did not succeed . Have this error : level=error msg="Endpoint: does not follow ip address or domain name standards." Do you what can cause this problem?

    Thanks in advance :)

  • Add CONTRIBUTING.md

    Add CONTRIBUTING.md

    Add CONTRIBUTING.md to explicitly state contibution guidelines for this project: what can other people suggest, work on, how can we participate in the development

Product Lifecycle Management (PLM) in Git

Product Lifecycle Management (PLM) in Git. This repo contains a set of best practices and an application that is used to manage information needed to

Dec 21, 2022
An efficient Go Rapid Product Assembly system used within the Bhojpur.NET Platform ecosystem.

Bhojpur GoRPA - Builder, Packager, Assembler An efficient Go-based Rapid Product Assembly software tool used within the Bhojpur.NET Platform ecosystem

Apr 28, 2022
The Bhojpur BSS is a software-as-a-service product used as an Business Support System based on Bhojpur.NET Platform for application delivery.

Bhojpur BSS - Business Support System The Bhojpur BSS is a software-as-a-service product used as an Business Support System based on Bhojpur.NET Platf

Sep 26, 2022
Type-safe Prometheus metrics builder library for golang

gotoprom A Prometheus metrics builder gotoprom offers an easy to use declarative API with type-safe labels for building and using Prometheus metrics.

Dec 5, 2022
A Visual Go REST API boilerplate builder.
A Visual Go REST API boilerplate builder.

A Visual Go REST API boilerplate builder. The boilerplate builder will export a Go web server with 0 dependencies, besides the ones you add.

Jul 8, 2022
An online Zig compiler inspired by Go and Rust

Zig Playground This is a rudimentary online compiler for the Zig programming language. It is inspired by the Go playground. Setup The main server is a

Jan 3, 2023
Instant online preview of HTML files or websites.

Instant online preview of HTML files or websites.

Apr 19, 2022
Beecrowd is a Jugde Online Plataform to problems submissions. This repo contains all my submissions to Beecrowd.

Beecrowd Solutions Keywords: Beecrowd, judge, problems, competitive, programming, solutions, ad-hoc, sql, strings, algorithms, math, graphs Table of C

Jan 5, 2022
A go backend you can use as a template
A go backend you can use as a template

Golang project template form Golang Sri Lanka

May 18, 2022
Backend for Ribbit, Broker API Reference App
Backend for Ribbit, Broker API Reference App

Ribbit Reference Implementation (Backend) The reference implementation for the backend of a broker-dealer trading application with the Alpaca Broker A

Dec 5, 2022
JumpCloud backend interview assignment

jc-assignment JumpCloud backend interview assignment Hello and thanks for speaking with me earlier this week. As may be apparent from the code, I'm ne

Nov 5, 2021
Monegi Backend With Fiber And Gorm

Fiber + Gorm Setting environment variables Creating .env file to compose environment variables. .env DB_HOST= <host of db> DB_NAME= <name of db> DB_US

Nov 17, 2021
A challenge in Go. A simple backend responding to API calls reading/writing data from to PostgreSQL db.

Go Challenge The challenge has been executed in two different steps. Steps 1 Hour tag: 1 hour: As the challenge required, the tag is a snapshot of wha

Dec 4, 2021
Epub generator backend for mdBook

gomdbook2epub An EPUB generator backend for mdBook. Getting Started Install bina

Dec 17, 2021
Golang-echo-sample - Make an out-of-the-box backend based on golang-echo

Golang-echo-sample - Make an out-of-the-box backend based on golang-echo

Dec 31, 2021
Radiant is used for rapid development of enterprise application in Go, including RESTful APIs, web apps and backend services.

Radiant is used for rapid development of enterprise application in Go, including RESTful APIs, web apps and backend services.

Mar 22, 2022
Seen tech VAI22 backend MehediHassan

Seen-tech-VAI22-backend-MehediHassan Getting started To make it easy for you to get started with GitLab, here's a list of recommended next steps. Alre

Feb 9, 2022
Product Analytics, Business Intelligence, and Product Management in a fully self-contained box
Product Analytics, Business Intelligence, and Product Management in a fully self-contained box

Engauge Concept It's not pretty but it's functional. Track user interactions in your apps and products in real-time and see the corresponding stats in

Nov 17, 2021
An open-source, distributed, cloud-native CD (Continuous Delivery) product designed for developersAn open-source, distributed, cloud-native CD (Continuous Delivery) product designed for developers
An open-source, distributed, cloud-native CD (Continuous Delivery) product designed for developersAn open-source, distributed, cloud-native CD (Continuous Delivery) product designed for developers

Developer-oriented Continuous Delivery Product ⁣ English | 简体中文 Table of Contents Zadig Table of Contents What is Zadig Quick start How to use? How to

Oct 19, 2021
open source training courses about distributed database and distributed systemes
open source training courses about distributed database and distributed systemes

Welcome to learn Talent Plan Courses! Talent Plan is an open source training program initiated by PingCAP. It aims to create or combine some open sour

Jan 3, 2023