Example of service for brand discount codes generation.
The idea is that a brand can create their own page in our marketplace where they can make discount codes available. As a user of our market place you create an account and in exchange for the discount codes you agree to share your contact information with the brand you got the code from. The vision is to be the one stop solution for loyalty programmes.
- Login - out of scope ☑️
- Create a brand page on the marketplace - out of scope ☑️
- Browse brands and stores - out of scope ☑️
- Search for brands and stores - out of scope ☑️
- Get discount code - implemented ✅
- Generate a discount code (The brand wants to create X number of discount codes)
- Fetch a discount code(A user of the system gets a discount code)
Service combines modern techniques and approaches such as:
- Clean Architecture
- Domain-driven design(DDD)
- Command and Query Responsibility Segregation(CQRS)
- Behavior-driven development(BDD)
- API first
See here
See here
Requirements
- Go 1.17
- MacOS X
make setup
make run
- Architecture diagram using C4 model
- Unit testing
- Acceptance testing
- Distributed tracing(opentracing/opentelemetry) support
- Better logging (errors, request/response)
- Graceful shutdown for HTTP server
- Configuration via yaml file