Skip to content

EveryMundo/emDataStandards

Repository files navigation

emDataStandards

Data standards are the rules by which data are described and recorded. In order to share, exchange, and understand data, we must standardize the format as well as the meaning.

Why do we need Data Standards?

Using standards makes using things easier. Standards provide data integrity, accuracy and consistency, clarify ambiguous meanings, minimize redundant data, and document business rules. The data becomes usable to more than just the project or person that created the data, because you know the data will be in an expected format and you know what is represented by the data.

Why does EveryMundo develop its own Data Standards?

EveryMundo develops its own technology and integrates with international airlines around the world who use different technologies. EveryMundo’s internal departments can create superior products through efficient collaboration by speaking the same language - data standards. It is best practice to leverage existing data standards where applicable. EveryMundo created its own standards based on NDC (New Distribution Capability) and Schema.org.

NDC is a travel industry-supported program launched by IATA for the development and market adoption of a new, XML-based data transmission standard (NDC Standard). The NDC Standard enhances the capability of communications between airlines and travel agents.

Schema.org is a collaborative, community activity with a mission to create, maintain, and promote schemas for structured data on the Internet, on web pages, in email messages, and beyond. Founded by Google, Microsoft, Yahoo and Yandex, Schema.org vocabularies are developed by an open community process.

How were the standards developed?

  1. Review IATA NDC documentation
  2. Use schema.org as the basis for variable definition; schema.org vocabulary was founded by major companies - Google, Microsoft, Yandex, Yahoo
    • Inherit data structure from schema.org:
      • property
      • propertyType
        • Note: "@type" used for illustration purposes and will not be used in real data
      • variable

How to get started

Complete the emDataStandards course

It takes max. 1h to complete the course and teaches the basics of the data standards, which are also described below. https://everymundo-university.teachable.com/p/emdatastandards

Documentation

https://everymundo.github.io/emDataStandards/documentation/build/

Deploy to gihub pages manually

Note: The following command assumes that you have committed already all your changes in master. For Windows, run the command in git bash.

bash ./publish-gh-pages.sh

Field Naming Convention

  • Follow the Google Java Style Guide
    • Lower camel case
    • No space or underscore in field
    • Example: airportIataCode
  • Only use field names without the parent if unambiguous by itself. For example: It is acceptable to use siteEdition instead of pageSiteEdition
"page": {
  "siteEdition": "en-US"
}

If the field name is being used in multiple properties, combine parent property and field name capitalizing the first letter of the field name, e.g. airlineIataCode

"airline":{
	"name": "Xiamen Air"
}

"city": {
	"name": "San Francisco"
}

Field Output Naming Convention

  • Variable output follows ISO (International Organization for Standardization)
  • Variable output follows industry standards
  • Populate variable with null if not available
  • User upper case and underscore for defined list of output values, otherwise use upper camel case: fareClass (ECONOMY, BUSINESS, FIRST), journeyType, flightType, routeType
  • Use comma (",") to separate list items when together in a string. Use | as a fall back. 

Review Process

Introduced CODEOWNERS: Pull requests to the master branch now automatically require at least three approved reviews by EM Code Owners

Notes:

  • In JSON, numbers do not require formatting rules, unless there is a need to be very strict, e.g. miles can only be an integer.
  • Tracking:
    • Due to character limits in Google Analytics event tracking, tracking.schema.json documents acceptable exceptions to emDataStandards

Stack

Doca A CLI tool that scaffolds API documentation based on JSON HyperSchemas.

License

This project is licensed under the MIT License - see the LICENSE.md file for details

About

EveryMundo's Data Standards

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published