Skip to content

digitamind/voucherz-5

Repository files navigation

VOUCHERZ - Team 5

Voucherz is a promotional portal where merchants can manage Vouchers or PINs for their end-users to get discounts, gifts or some other specified value

The System developed by Team-5 leverages on a micro-service architecture. The microservices are loosely coupled using Eureka service registry -eaach microservice can talk to other services without a need to know their ip address or ports, and API gateway(Zuul) as a single point of entry to all microservices

The System was built using a domain driven design, dividing the system logic into six different domain bounded context. Each domain bounded context is a microservice.

The Merchant management/Auth service manages merchants and system users, in addition the microservice authenticates and authorizes users into the system. The System uses JWT to store the identity and roles of authenticated user, the system stores the token in redis which is an in-memory storage for fast retrieval and validation. The system has a cron job that flushes or purges out expired token from redis.

The system has 3 different microservices for voucher generation of the different type of vouchers namely Gift, value and discount voucher. The team decided to separate the generation, management and redemption of the different type of voucher because of the distinct properties between the voucher types, separating them also enhances the scalability of individual voucher microservice at peak period. The system generates both standalone and bulk voucher codes of varying types for merchants. The system uses SQL table value parameter to store bulk codes, it generates and stores more than 1 million codes in less than 2 minutes. Vouchers can be enabled, disabled and validated. A user can provide customized code and as well use the realtime client voucher generation service to dynamically generate vouchers based on specified configuration.

The notification service handles the generation and distribution of email notification to newly registered merchants. It also handles the distribution of voucher codes generated by merchants to intended customers via email. The notification service listens to a message topic in redis, it subscribes to the topic and pushes notification when there is a new request.

The audit trail service stores and processes system events, other microservices publishes to the audit topic in redis and the audit trail service listens to the topic. The system leverages on MonoDB for storing the events. The audit events are made available to the system admin.

Technolgoy Used:

  • Redis: Message Broker and In-memory storage for both JWT and validation token storage
  • Spring: Java webframework for API development.
  • React: Frontend framework to design Merchant Admin Portal and System Admin Portal
  • Flyway: For Database Migration
  • MongoDB: NoSQL database use for audit trail storage.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors