This is the new API repository for Feel the Movies. Written in Go, totally open source.
This is my first Golang project, so probably there's a lot to improve. Any kind of help is welcome. I did my best researching the best practices, the best folder structuration and all that I could find. In the future, I pretend to bump this project to the version 2.0 using advanced concepts, like design patterns.
Set environment variables for MySQL and Redis. Check the main.go file.
Make sure that you have Docker installed and then run the following commands:
$ docker-compose up -d $ go get -t -v ./...
That's it! Go to folder "cmd/feelthemovies" and run the command:
$ go run main.go
These are the packages that helped me build this project:
- go-chi/chi - chi is a lightweight, idiomatic and composable router for building Go HTTP services.
- uber-go/zap - Blazing fast, structured, leveled logging in Go.
- InVisionApp/go-health - Library for enabling asynchronous health checks in your service.
- dgrijalva/jwt-go - Golang implementation of JSON Web Tokens (JWT).
- go-playground/validator - Package validator implements value validations for structs and individual fields based on tags.
- google/uuid - The uuid package generates and inspects UUIDs based on RFC 4122 and DCE 1.1: Authentication and Security Services.
- go-sql-driver/mysql - A MySQL-Driver for Go's database/sql package.
- golang-standards / project-layout - Standard Go Project Layout.
- avelino / awesome-go - A curated list of awesome Go frameworks, libraries and software.
- insomnia - Rest client.
To start contributing, please check CONTRIBUTING.