RESTful API for our E-Commerce App Project
Where users can post products, buy & sell their goods. It is built with Golang, MySQL, Docker, AWS EC2, etc.
- CRUD (Users, Cart, Transactions)
- Hashing passwordgit
- Authentication & Authorization
- Database Migration
- Automated deployment with GitHub Actions, DockerHub & AWS EC2
- Midtrans Integration as Payment Gateway
βββ .github
β βββ workflows
β βββ main.yml
βββ config
β βββ cloudinary.go
β βββ config.go
β βββ db.go
βββ features
β βββ cart
β β βββ data
β β β βββ model.go
β β β βββ query.go
β β βββ handler
β β β βββ handler.go
β β β βββ request.go
β β β βββ response.go
β β βββ services
β β β βββ service_test.go
β β β βββ service.go
β β βββ entity.go
β βββ product
β β βββ data
β β β βββ model.go
β β β βββ query.go
β β βββ handler
β β β βββ handler.go
β β β βββ request.go
β β β βββ response.go
β β βββ services
β β β βββ service_test.go
β β β βββ service.go
β β βββ entity.go
β βββ user
β β βββ data
β β β βββ model.go
β β β βββ query.go
β β βββ handler
β β β βββ handler.go
β β β βββ request.go
β β β βββ response.go
β β βββ services
β β β βββ service_test.go
β β β βββ service.go
β β βββ entity.go
β βββ transaction
β β βββ data
β β β βββ model.go
β β β βββ query.go
β β βββ handler
β β β βββ handler.go
β β β βββ request.go
β β β βββ response.go
β β βββ services
β β β βββ service_test.go
β β β βββ service.go
β β βββ entity.go
βββ helper
β βββ cloudinary_helper.go
β βββ dto.go
β βββ jwt.go
β βββ pwd.go
β βββ response.go
βββ mocks
βββ .gitignore
βββ dockerfile
βββ ecommerce.yaml
βββ erd.png
βββ go.mod
βββ go.sum
βββ LICENSE
βββ local.env.example
βββ main.go
βββ README.md
Simply click here to see the details of endpoints we have agreed with our FE team.
- Backend Stacks :
- Documentation :
- Deployment & Storage :
- Ubuntu : Development & Deployment OS
- Docker : Containerization
- Amazon EC2 : Cloud server
- Cloudinary : Store and retrieve images
- Cloudflare : SSL & Proxy
- Clone it
$ git clone https://github.com/four-squad/ecommerce-API
- Go to directory
$ cd ecommerce-api
-
Create a new database
-
Rename
local.env.example
tolocal.env
-
Adjust
local.env
as your environment settings -
Run the project
$ go run .
- Voila! π«