Development

DVCS

  • This section explains how DVCS was used, in particular:
    • Conventions on the usage of branches
    • Conventions for commit messages
    • Conventions for pull requests, issues, code reviews, etc.

Implementation details

  • Which network protocols should be used? Why?
    • Examples: UDP, TCP, HTTP, WebSockets, gRPC, XMPP, AMQP, MQTT, etc.
  • How should in-transit data be represented? Why?
    • Examples: JSON, XML, YAML, Protocol Buffers, etc.
  • How should databases be queried? Why?
    • Examples: SQL, NoSQL, etc.
  • How should components be authenticated? Why?
    • Examples: OAuth, JWT, etc.
  • How should components be authorized? Why?
    • Examples: RBAC, ABAC, etc.

Technological details

  • Which programming languages, frameworks, libraries, and tools were used? Why?
    • Examples: Java, Python, C++, JavaScript, React, Angular, Vue, etc.
  • Which libraries do the project depend on? Why?
    • Examples: React, Redux, Express, etc.
  • Are there any other external technology or service dependencies? Why?
    • Examples: Google Maps, Firebase, etc.