todo-app

module
v0.1.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: May 11, 2022 License: MIT

README

Todo App

The project represents the configuration and setup basic server for TODO application with auto-testing and OpenAPI specification from postman's collection

CI GoReport license GitHub go.mod Go version of a Go module GoDoc

Prerequisites

  • Git
  • Docker
  • Docker Compose

How to Install

Clone from github and navigate to the project's folder

# HTTPS
git clone https://github.com/vbetsun/todo-app.git

# SSH
git clone git@github.com:vbetsun/todo-app.git

cd todo-app

How to Deploy

cp ./deployments/.env.example ./deployments/.env

change env variables for your needs

PORT=8000 # port for serving API
DOCS_PORT=8080 # port for serving OpenAPI documentation
POSTGRES_HOST=localhost # host of postgre db
POSTGRES_PASSWORD=someStr0ngPass # password to psql

and start the application via docker compose. It should start the API server, PostgreSQL database, pgAdmin and OpenAPI documentation, which you can see on http://localhost:${DOCS_PORT}

docker compose -f ./deployments/docker-compose.yml up -d

after that you have to run migrations

make migrate-up

Database structure

ERD

How to Test

for testing our API we're going to use POstman collection via Newman

make test-e2e

Directories

Path Synopsis
cmd
api
Entry point for application's API
Entry point for application's API
internal
core
Package core represents domain's entities Package core represents domain's entities Package core represents domain's entities
Package core represents domain's entities Package core represents domain's entities Package core represents domain's entities
storage/psql
Package psql used for storing data in PostgreSQL database
Package psql used for storing data in PostgreSQL database
transport/rest
Package rest implements setup, teardown and handlers for the REST API
Package rest implements setup, teardown and handlers for the REST API
transport/rest/handler
PAckage handler implements router and endpoints for REST API
PAckage handler implements router and endpoints for REST API

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL