Skip to content

Instantly share code, notes, and snippets.

@madebyais
Last active March 1, 2018 06:35
Show Gist options
  • Save madebyais/b3e94f69cc60aca3a1700b4639dbd65d to your computer and use it in GitHub Desktop.
Save madebyais/b3e94f69cc60aca3a1700b4639dbd65d to your computer and use it in GitHub Desktop.
Service documentation

{SERVICE_NAME}

[build_status_badge_if_any] [code_coverage_badge_if_any]

Replace this text with service detail description.

  • What is the purpose of this service ?
  • Background why this service is needed

TABLE OF CONTENTS

FEATURES

Replace this text with service main features. Add [feature_requirement_spec_doc_link] if any.

SERVICE TYPE

Replace this text with ***RESTFUL*** or ***GRPC*** or ***ANY OTHER TYPE***

LANGUAGE

Replace this text with ***GO*** or ***JAVA*** or ***CLOJURE*** or ***RUBY*** or ***ANY OTHER ELSE*** Make sure to include the version also.

GET STARTED

Replace this text with detail step-by-step:

  • what are pre-requisites needed to run this service e.g. install libraries, plugins, etc
  • how to setup application config
    • what mandatory keys should be changed to enable development
  • how to run tests in this service
  • how to do database migration

TEST

Replace this text with detail about how to run the test

  • make sure to inform readers that all test should be run and return success

AVAILABLE APIs

If the type of this service is **RESTFUL**, then you can go to Swagger

If the type of this service is **GRPC**, then you can add information as below.

  • description for the service as to what it does, why it’s needed, potential callers etc.

TROUBLESHOOTING

Replace this text if you encountered any issue during development and know how to solve the issue.

REFERENCES

  • Link to external diagrams (if any)
  • Other information related to this service

DEPLOYMENT (OPTIONAL)

Replace this text with things (items) that need attention before submitting a deployment diagram. For example:

  • If you add a new configuration in e.g. application.yml, then you need to add to cookbook, etc.

FOLDER STRUCTURE (OPTIONAL)

Replace this with project folder structure. It would be great if you can share the description for each folder. e.g.

|- application.default.yml
|- src
    |- api
    |- dao
    |- models           ~> logical structure of data
    |- repositories     ~> call layer to database, cache, etc
    |- services
|- test
    |- repositories
    |- services

CODE FLOW (OPTIONAL)

Replace this text with detail step-by-step about how to start coding in this service. e.g.

models ~> dao ~> repositories ~> services ~> api

DATABASE (OPTIONAL)

If the application has a database, it’s helpful to know the type of database, the version, and if possible, the data model diagram or table information as below.

Users

Key Type Description
user_id string user_id is using uuid generated by the service

***It would be great if there's any tools that can generate the diagram from a schema ***

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment