JavaScript

Treehouse users API

Hi, when visiting a user profile we see the number of points earned on that topic, but what's the max points that can be earned on that topic ( to get a percentage)?

Thanks

2 Answers

if you are using the API, as in returning json, you can grab this fairly easily. Here's a sample return from your profile, accessible at teamtreehouse.com/younesrafie.json:

           {
  "name": "Younes RAFIE",
  "profile_name": "younesrafie",
  "profile_url": "http://teamtreehouse.com/younesrafie",
  "gravatar_url": "https://secure.gravatar.com/avatar/862d65cadc47ead67218bcd6a148f03d?s=200&d=https://teamtreehouse.com/assets/content/default_avatar.png&r=pg",
  "gravatar_hash": "862d65cadc47ead67218bcd6a148f03d",
  "badges": [
    {
      "id": 49,
      "name": "Newbie",
      "url": "http://teamtreehouse.com/younesrafie",
      "icon_url": "https://wac.A8B5.edgecastcdn.net/80A8B5/achievement-images/Generic_Newbie.png",
      "earned_date": "2013-12-29T20:35:41Z",
      "courses": []
    },
    {
      "id": 48,
      "name": "Elements",
      "url": "http://teamtreehouse.com/library/aesthetic-foundations/elements",
      "icon_url": "https://wac.A8B5.edgecastcdn.net/80A8B5/achievement-images/Aesthetic_Elements.png",
      "earned_date": "2013-12-29T20:58:59Z",
      "courses": [
        {
          "title": "Websites",
          "url": "http://teamtreehouse.com/library/websites",
          "badge_count": 1
        },
        {
          "title": "Aesthetic Foundations",
          "url": "http://teamtreehouse.com/library/aesthetic-foundations",
          "badge_count": 1
        },
        {
          "title": "Elements",
          "url": "http://teamtreehouse.com/library/aesthetic-foundations/elements",
          "badge_count": 1
        }
      ]
    },
    {
      "id": 386,
      "name": "Starting a Freelance Career",
      "url": "http://teamtreehouse.com/library/how-to-freelance/starting-a-freelance-career",
      "icon_url": "https://wac.A8B5.edgecastcdn.net/80A8B5/achievement-images/badges_HowToFreelance_Stage1.png",
      "earned_date": "2014-01-06T20:12:39Z",
      "courses": [
        {
          "title": "Business",
          "url": "http://teamtreehouse.com/library/business",
          "badge_count": 1
        },
        {
          "title": "How to Freelance ",
          "url": "http://teamtreehouse.com/library/how-to-freelance",
          "badge_count": 1
        },
        {
          "title": "Starting a Freelance Career",
          "url": "http://teamtreehouse.com/library/how-to-freelance/starting-a-freelance-career",
          "badge_count": 1
        }
      ]
    },
    {
      "id": 387,
      "name": "Finding Your First Project",
      "url": "http://teamtreehouse.com/library/how-to-freelance/finding-your-first-project",
      "icon_url": "https://wac.A8B5.edgecastcdn.net/80A8B5/achievement-images/badges_HowToFreelance_Stage2.png",
      "earned_date": "2014-01-06T22:58:22Z",
      "courses": [
        {
          "title": "Business",
          "url": "http://teamtreehouse.com/library/business",
          "badge_count": 1
        },
        {
          "title": "How to Freelance ",
          "url": "http://teamtreehouse.com/library/how-to-freelance",
          "badge_count": 1
        },
        {
          "title": "Finding Your First Project",
          "url": "http://teamtreehouse.com/library/how-to-freelance/finding-your-first-project",
          "badge_count": 1
        }
      ]
    },
    {
      "id": 388,
      "name": "Pricing and Project Proposals",
      "url": "http://teamtreehouse.com/library/how-to-freelance/pricing-and-project-proposals",
      "icon_url": "https://wac.A8B5.edgecastcdn.net/80A8B5/achievement-images/badges_HowToFreelance_Stage3.png",
      "earned_date": "2014-01-07T14:56:59Z",
      "courses": [
        {
          "title": "Business",
          "url": "http://teamtreehouse.com/library/business",
          "badge_count": 1
        },
        {
          "title": "How to Freelance ",
          "url": "http://teamtreehouse.com/library/how-to-freelance",
          "badge_count": 1
        },
        {
          "title": "Pricing and Project Proposals",
          "url": "http://teamtreehouse.com/library/how-to-freelance/pricing-and-project-proposals",
          "badge_count": 1
        }
      ]
    }
  ],
  "points": {
    "total": 217,
    "html": 0,
    "css": 0,
    "javascript": 0,
    "ruby": 0,
    "ios": 0,
    "business": 120,
    "android": 0,
    "php": 25,
    "wordpress": 0,
    "design": 36,
    "dev tools": 0
  }
}

As you can see at the very bottom, there is an object called "points", which has a breakdown of all your points by category as well as you total points. Let's assume you made an AJAX call which returned this object: in JavaScript you would access the "total" number by:

    console.log(data.points.total);

If you would like to see a sample AJAX call, let me know and I'll write one out for you. If you would like to see some example code of a project I did using the treehouse user data, checkout reportcard.js. It reads your profile information and outputs a treehouse badge report card for use on a portfolio or resume website.

James Barnett
James Barnett
39,191 Points

> what's the max points that can be earned on that topic

That information isn't currently exposed via the Treehouse API. You can email help@teamtreehouse.com to request that feature be added.

Ahhhh, just realized I read the questions wrong, doh! James is right, you cannot tell the max points of a topic from the treehouse API at the moment.

can you please explain me how Treehouse build the points chart on users profiles, because we earn points on answering questions on forum for example but we don't see that on chart?