/Forum-App-Backend

Forum App Backend with Go, Gin Framework

Primary LanguageGo

Getting Started

[Technologies · · Installations · · Tests]

Technologies Used

Installations

Clone

  • Clone this project to your local machine

Setup

Without Docker

Ensure that you have your .env set up and have created your database

  • For local, set the DB_HOST in the .env file as follows:
      $ DB_HOST=127.0.0.1

In the root directory, run the command

$ go run main.go
  • Use http://localhost:8080 as base url for endpoints

Using Docker

Docker is the default setting for this project

  • Set the DB_HOST as follows in the .env file
      $ DB_HOST=forum-postgres 
For Local Development:
  • Create a Dockerfile file in the root directory
  • Copy the content of the file: example.Dockerfile.dev (for only local development)
  • Create a docker-compose.yml file in the root directory
  • Copy the content of the file: example.docker-compose.dev.yml (for only local development)
For Testing:
  • Create a Dockerfile.test file in the root directory
  • Copy the content of the file: example.Dockerfile.test (for only test)
  • Create a docker-compose.test.yml file in the root directory
  • Copy the content of the file: example.docker-compose.test.yml (for only test)
For Production (This should be done in the server (AWS, DigitalOcean, etc)):
  • Create a Dockerfile file in the root directory
  • Copy the content of the file: example.Dockerfile.prod (for production only)
  • Create a docker-compose.yml file in the root directory
  • Copy the content of the file: example.docker-compose.prod.yml (for production only)

In the root directory, run the command:

$ docker-compose up --build
  • Use http://localhost:8888 as base url for endpoints

Tests

Without Docker

  • Run test for all endpoints

    Navigate to the tests directory and run

    $ go test -v ./...

Using Docker

  • Run test for all endpoints

    If you have set up the Dockerfile.test and the docker-compose.test.yml files above, from the root directory of the app.

    $ docker-compose -f docker-compose.test.yml up --build