Contactly

Agile Software Architecture

NB : This document will always be a work in progress as we are using an agile methodology.

The main purpose for the CDAAS (Customer Data As A Service/Contaclty/AgoraCXP) project is to allow for a RestFUL API interface to handle full CRUDL (Create, Read, Update, Delete, List) operations on Customer data, namely

- Customer details
- Subscriptions
- Orders
- Cancellations

These API's can be consumed by any affiliate. There will also be a standard Customer Service Dashboard (UI) front end available

Use Case
The main features of the AgoraCXP/Contaclty design :-

To empower subscribers viewing their details by providing them with an application (API or Front End).
Professional user design and best practices
Allow for quick feature development
Admin interface for affiliates to update data, other timely information
Enhance page load times
Scalable (thousands of concurrent users)
Robust (High availability)
Cloud enabled

User Stories As a subscriber/agent/bot I want to be able edit the customer details (profile) so that the system reflects the most up to date data about the customer
Acceptance Criteria
- Search for specific items/s
- Update/Delete/Insert customer profile data
- Meets the design spec
- Fast load time and performance

Tasks
- BE - MS that interfaces to middleare to get and update data
- FE - View (search) customer profile data
- FE - Update/Insert/Delete

As a subscriber/agent/bot I want to be able to cancel a subscription quickly and easily
As a subscriber/agent/bot I want to be able to edit the auto-renewal status of my subscription
As a customer/agent/bot I want to be able to place an order quickly and easily
As a customer/agent/bot I want to be able to confirm an order so I know the details of what was ordered
As a customer/agent/bot I want to be able to confirm the delivery status of an order
As a subscriber/agent/bot I want to be able to reset my password so I can access the website
As a subscriber/agent/bot I want to be able to update a credit card number held on file, whenever the card details change
As a subscriber/agent/bot I want to be able to pay an outstanding invoice
As a subscriber/agent/bot I want to be able to see a list of previous purchases

Overview
The software architecture overview will best be described in the following diagram

Architecture Overview Diagram


Overview Description
The software architecture is broken up into several layers. The front end consists of 2 different application interfaces one for the admin console and the other for the actual customer service dashboard
The admin console is used to update data that was not included or has some important information changes.
The backend is broken up into several microservices.

Architecture Detail (Openshift deploy) Diagram



Code / Commands


curl -d '{}' https://api-gateway/api/v1/auth
                        
About
This is a collection of data for a quick lookup / reference
 
Its not an exhaustive reference (nor will it be), but as stated before its a quick lookup / reference
LMZ 2020