Skip to content

This repository contains a set of RESTful APIs for invoice management operations. It represents 'Invoice' as a target document and all the relevant CRUDs exposed via API. In addition, this repo includes one of possible solutions for document audit tracking, for this purpose Azure function has been implemented based on the same 'Invoice' domain e…

Reenbit/Reenbit.IMS

Repository files navigation

Reenbit.IMS

This repository contains a set of RESTful APIs for invoice management operations. It represents 'Invoice' as a target document and all the relevant CRUDs exposed via APIs. In addition, this repo includes one of possible solutions for document audit tracking, for this purpose Azure Function has been implemented based on the same 'Invoice' domain entity.

Swagger page

Swagger page

Technology stack

ASP.NET Core, Azure Cosmos DB, Azure Functions (Cosmos DB trigger)

Demo

  • User 1 creates an initial invoice document

    Create invoice request

    Create invoice response

    Created invoice

  • User 1 updates previously created invoice

    Update invoice by user 1

  • User 2 updates the same invoice

    Update invoice by user 2

  • Azure Function output (two 'TrackInvoiceUpdates' events handled)

    Azure Function Output

  • Audit log results in database

    Audit Log 1 Audit Log 2

Notes

  • "actor-id" request header is passed to APIs just for demo purposes (to simulate multiple users)
  • all audit log records are collected into separate Cosmos DB container
  • only last update log information is a part of 'Invoice' document, which prevents from keeping a 'huge' document as a result of many updates

About

This repository contains a set of RESTful APIs for invoice management operations. It represents 'Invoice' as a target document and all the relevant CRUDs exposed via API. In addition, this repo includes one of possible solutions for document audit tracking, for this purpose Azure function has been implemented based on the same 'Invoice' domain e…

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages