Skip to content

9. Data structure

DavidAbraham082 edited this page Dec 14, 2021 · 2 revisions

JSON data

SSW.People is using JSON as a profile metadata source. An API can generate the JSON from your CRM or from where your employees' data are stored.

JSON data example:

[    
    {
        "userId": "1",
        "firstName": "Nancy",
        "lastName": "Davolio",
        "emailAddress": "Nancy.Davolio@northwindDB.com",
        "isActive": true,
        "defaultSite": {
            "name": "London"
        },        
        "skills": [
            {
                "technology": "Beverages",
                "experienceLevel": "Advanced"
            }
        ],
        "billableRate": 150.0,
        "blogUrl": "myblog.com",
        "facebookUrl": "Nancy.Davolio",
        "skypeUsername": "Nancy.Davolio",
        "linkedInUrl": "Nancy.Davolio",
        "twitterUsername": "Nancy.Davolio",
        "gitHubUrl": "",
        "youTubePlayListId": ""
    },
  {
    "userId": "2",
    "firstName": "Andrew",
    "lastName": "Fuller",
    "emailAddress": "Andrew.Fuller@northwindDB.com",
    "isActive": true,
    "defaultSite": {
      "name": "Seattle"
    },
    "skills": [
      {
        "technology": "Produce",
        "experienceLevel": "Advanced"
      },
      {
        "technology": "Confections",
        "experienceLevel": "Intermediate"
      }
    ],
    "billableRate": 100.0,
    "blogUrl": "www.andrewfuller.blog",
    "facebookUrl": "Andrew.Fuller",
    "skypeUsername": "Andrew.Fuller",
    "linkedInUrl": "Andrew.Fuller",
    "twitterUsername": "Andrew.Fuller",
    "gitHubUrl": "FullerGit",
    "youTubePlayListId": "abcd12345"
  }
]

Description:

  • userId: Used to link the Json data with the corresponding markdown data
  • firstName: first name
  • lastName: last name
  • emailAddress: email address
  • isActive: true for current employees
  • defaultSite: employee default office location
  • skills: list of the employee skills
  • billableRate: used to sort employees
  • blogUrl: blog URL
  • facebookUrl: Facebook account
  • skypeUsername: Skype user name
  • linkedInUrl: LinkedIn profile
  • twitterUsername: Twitter account
  • gitHubUrl: GitHub profile,
  • youTubePlayListId: Youtube playlist ID

Markdown data

Data that doesn't come from your employees' data source is stored in the frontmatter of the markdown file.

Markdown structure example:

---
id: "1"

category: "Developers"
role: "Software Architect"
qualifications: "Certified Scrum Master"

quote: "Working together to provide solutions to problems every day"
quoteAuthor: "Anonymous"
---

[Editing your profile]: https://github.com/SSWConsulting/SSW.People.Profiles/wiki/3.-Editing-your-profile

A lot of text!

Frontmatter fields description:

  • id: used to link the JSON data with the corresponding markdown data
  • category: employee category
  • role: role title
  • qualifications: list of qualifications or certifications
  • quote: favorite quote
  • quoteAuthor: author of the quote (optional if author is the employee)

Next Step: Appendix >