StudyBits v0.3 architecture - Quintor/StudyBits GitHub Wiki

StudyBits v0.3 architecture

The v0.3 architecture requires 3 applications: University Agent, Admin Frontend, and the wallet.

University Agent

The University Agent is responsible for the University wallet.

Requires:

  • Being bootstrapped into the ledger (pre-shared seed with the Steward), a Schema is bootstrapped.
  • (Mock) legacy admin system, containing data on the students. (At this phase, a Service calling into a Repository seeded by the application.)

Provides to Student Frontend/Wallet:

  • Connect API. The response of this API is a connection request, along with a callback url to the Confirm Connect API. Allows a student to connect in one of two ways:
    • Unauthenticated. Creates a new connection, not related to any legacy systems.
    • Authenticated. Create a new connection, using authentication to a legacy system.
  • Confirm Connect API. Allows a student to confirm a connection request.
  • Credential Offer API. If a connected student has data in the legacy admin system, corresponding credential offers will be available here. (only Transcript)
  • Credential API. For any credential offer sent, the responding credential can be obtained here.
  • ExchangePosition API. Retrieve all open exchange positions, with a proof request for each.
  • Possibly Schema and CredentialDefintion API. Wallets need to be able to do Schema and Credential Definition lookups by id. This could be done directly on the ledger, but to keep the wallet from needing to directly connect to a node, we could provide a pass-through API for these entities.

Provides to Admin Frontend:

  • Student API. Overview of all connections with authenticated/unauthenticated status.
  • ExchangePosition API. Retrieve all exchange positions. Create a new position. Allows specifying which attributes from a schema are needed.

Provides to bootstrap process:

  • Bootstrap API: Allows a bootstrap process to inject the schema id into the application.

Admin Frontend

The Admin Frontend allows administration on the new data gathered in the University Agent (not legacy data)

Requires:

  • Student API and ExchangePosition API from University Agent

Provides:

  • A user-friendly way to create exchange positions
  • A presentable view of students in the system

Wallet

The Wallet is a combination of Studybits-specific and Sovrin-generic functionality. It provides the student everything they need to obtain their credentials and prove them to third parties.

Requires:

  • University Agent
  • Connection to Sovrin, or passthrough API for Schemas and CredentialDefIds by University Agent

Provides (generic functionality):

  • Given a .indy file xor link, show message "xxx wants to connect", on "yes" post result to confirm endpoint.
  • View of all Credential Offers for all connections (if connection has endpoint, try calling it to get them)
  • Click credential offer to move to accept it

Provides (StudyBits specific):

  • View of all ExchangePositions for all connections
  • Click one to apply and go through proof process