Git Product home page Git Product logo

consentasaservice-microservices's Introduction

Consent As A Service

This Project contains the code for my Aston University Final Year Project for a Web Service to create, provide and manage user consents.

Mono-Repo Structure

This project is built with a monorepo architecture.

Building

To build the entire project, run: gradle build

Running the Service

Coming Soon

consentasaservice-microservices's People

Contributors

hsravat-4590 avatar

Watchers

 avatar

consentasaservice-microservices's Issues

Get Transaction

Endpoint to get the transaction in its most recent state

GET /sap-transactionservice/get/v1/{txnId}

Should return the latest entry for the txnId

Microservices or Monolith?

At the moment, ConsentAsAService is being designed using the microservices approach. Is this really the best option given the circumstances?

Taking the following "advantages" of microservices:

Decomposing

"So, instead of having one large application, we decompose it into separate, different, mini-applications (services)"

As this is a prototype project developed by one person for a University Dissertation, will it grow substantially large enough that it makes sense to decompose?

Single Function

How much scope would each microservice have on a project of this size?

Well-Defined interfaces

Can also be considered with a monolith

Independence

See Single Function

Small Teams / Collaboration / Minimising Need for communication between teams

Single dev project so this doesn't really apply

Other considerations

Microservices increase the tech debt I would have on this project as each microservice would need a client implementation on top of the client implementation required for the user-facing gateway. Is this a WORTHWHILE use of time?

#1 Compiles to WAR

SAP-TransactionService-IMPL should be compiled into the SAP-TransactionService-WAR project and all endpoints must be exposed from Tomcat

Update Transaction

POST request for updating an existing transaction:

POST /SAP-TransactionService/update/v1/

Should take TxnId, TxnStatus as a parameter eg

{
     txnId: 1f473f4c-f02d-4642-8f3a-8f88e367f915
     status: FULFILLED
}

Should return the UUID for the updated transaction

SAP-TransactionService

This story focuses on developing the first iteration of the transaction service as well as setting up any tooling required for future SAP services.

Story Goals

  • Compiles to a WAR #2
  • Configure Database Connections and create required tables/transactions for SAP-TransactionService #9
  • Gradle plugin for simpler SAP creation #3
  • Endpoint to create a new transaction #4
  • Endpoint to update a transaction (takes a given txnId) #5
  • Endpoint to get transaction details #6
  • Add a Spring Discovery Service for simplified microservice configuration #7

Refactor DA-Lib Architecture

The current architecture of DA-Lib is causing circular dependency issues & complications when implementing. The following model needs to be applied:
image

Create New Transaction

POST request for creating a new transaction:

POST /SAP-TransactionService/new/

Should take TxnStatus as a parameter eg

{
     status: CREATED
}

Should return the UUID for the transaction

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.