Purplestore
Prerequisites
- install Docker
Project Structures
- Layout
.
├── app.env.sample ( contains application configuration )
├── cmd ( main binary )
├── Makefile ( simplify project commands )
├── docs ( swagger documentation )
├── db
│ └── migrations ( database migrations )
└── internal
├── app
│ ├── controllers ( request response handler )
│ ├── models ( all about database table )
│ ├── repository ( database/cache operation )
│ ├── router ( http router )
│ ├── schema ( request/response schema )
│ └── service ( business logic )
└── pkg ( private lib )
- Application flow
router --> middleware --> controllers(use schema) --> service --> repository(user model)
Migration Commands
- Create migration file
make migrate-create name=migration_name
- Migrate Down / Rollback migration
make migrate-down
- Migrate UP / Applt migration to database
make migrate-up
Testing Command
- Running testing
make test
- Open test coverage
make test-cover
- Generate mocking Command example
mockgen -source internal/app/service/category.go -destination internal/mocks/category_repository_mock.go -package mocks
Docker Compose Commands
- Running docker compose
docker-compose up -d
- List all running container
docker ps