Engagement

Stack Overflow Dashboard – check engagement, metrics and more

Recently I put together a little Mozilla tags on Stack Overflow dashboard to check the engagement and numbers for the tags we sponsor. I liked the idea and wanted to create a general purpose dashboard for Stack Overflow, and share the feature, code and thinking with you.

Features

Numbers and developer behavior are always interesting areas, especially to spot trends, common questions, related areas and more. As Stack Overflow is one of the de facto channels where developers ask questions to solve problems I find it very interesting to look at those numbers and see possible correlations.

You can filter the data based on dates and time periods (different data is available through one or the other option), and the areas the dashboard offers information for are:

  • Questions:
    • # with activity
    • # of unanswered
    • Percentage of unanswered questions (Note that a question must have at least one upvoted answer to be considered answered)
    • List of unanswered questions
    • Frequently asked questions
  • Top answerers
  • Top askers
  • Related tags

The approach

My thinking was to use the Stack Exchange API and do simple requests for various tags end the engagement around them. I also wanted to make it easy for the user and autocomplete values for the tag criteria field. Given how many tags there are on Stack Overflow, though, to avoid massive overload I only get the 100 most popular tags and put them in a <datalist> element, connected to the <input> element where the user enters the tag to look for data for. This is being done directly on page load.

General mindset

The general mindset when building up the dashboard:

  1. Create a simple HTML form with tag, date period input
  2. Use a simple XMLHttpRequest to get the most popular tags for the <datalist> element
  3. For any request, use the basic XHR to get the data directly in JSON
  4. Depending on the requested data – multiple requests are needed to fill the dashboard – parse the returned JSON and present the results

API methods being used

The other API methods that are being called are:

Request throttling

Note that the limit for each IP number is 300 requests per 24 hours (unless you have an access_token, then the limit is 10,000).

Code

The code is available on GitHub and the idea has been to keep it as simple and free of dependencies as possible. It doesn’t use any JavaScript libraries as I see the use cases here, and where we are right now with HTML5, competent enough not to need that.

Pre-populating the <datalist> element

As an example, this is (trimmed-down) version of the code to get the most popular tags as JSON through the Stack Exchange API and polulate the <datalist>:

function getPopularTags () {
    getItems("popularTags", "http://api.stackexchange.com/2.2/tags?pagesize=100&amp;order=desc&amp;sort=popular&amp;site=stackoverflow");
}
 
// Run automatically at page load to pre-populate the &lt;datalist&gt; element
getPopularTags();
 
function getItems(type, url) {
    var xhr = new XMLHttpRequest();
    xhr.onreadystatechange = function () {
        if (xhr.readyState === 4) {
            var response = xhr.response;
 
            if (response.error_message) {
                // Show errors
            }
            else {
                addResults(type);
            }
        }
    };
 
    xhr.open("GET", url, true);
    xhr.responseType = "json";
    xhr.send(null);
};
 
function addResults (type) {
    // Popular tags, for filling the &lt;datalist&gt; element
    if (type === "popularTags") {
        var popularTagsList = document.querySelector("#popular-tags"),
            popularTags = questions.popularTags.items,
            popularTagsResults = "";
        for (var i=0,l=popularTags.length, tag; i&lt;l; i++) {
            tag = popularTags[i];
            popularTagsResults += '&lt;option value="' + tag["name"] + '"&gt;';
        }
        popularTagsList.innerHTML = popularTagsResults;
    }
}

Give feedback & hack it

I hope you find this interesting, and a good point to evaluate which areas to focus on and learn more! Also feel more than welcome to use the dashboard, check out the code and issue pull requests, suggest features and more!

View full post on Mozilla Hacks – the Web developer blog

VN:F [1.9.22_1171]
Rating: 0.0/10 (0 votes cast)
VN:F [1.9.22_1171]
Rating: 0 (from 0 votes)

New Washington, DC Social Media Marketing and Web Design Firm Helps Businesses Win the War for Brand Engagement

Businesses are finding the ally they need to compete on the marketing battlefield with Shout Brigade, a full-service Washington, DC social media marketing, branding and web design firm.Washington, DC (PRWEB) August 02, 2011 Businesses who need strong artillery to compete on the marketing battlefield are looking to Shout Brigade, a full-service marketing firm that specializes in Washington, DC …

View full post on web development – Yahoo! News Search Results

VN:F [1.9.22_1171]
Rating: 0.0/10 (0 votes cast)
VN:F [1.9.22_1171]
Rating: 0 (from 0 votes)

Engagement Project Manager (Mobile Marketing)

MultiLocation, Job: Engagement Project Manager (Mobile Marketing) Role Description The position reports to the Head of Account Management in the Mobile Operator Business Unit. It is a key role liaising between the client and Company’s internal execution capabilities – ensuring the timely and successful delivery of complex mobile marketing campaigns. This role is ideal for a senior candidate with high potential w View full post on Monster Job Search Results (mobile)

View full post on WebProJobs.org

VN:F [1.9.22_1171]
Rating: 0.0/10 (0 votes cast)
VN:F [1.9.22_1171]
Rating: 0 (from 0 votes)

Technical Engagement Manager

PCM Overland Park, KS
Job description: …practices* In depth understanding of Agile and Waterfall processes* Knowledge of trends in digital marketing* Knowledge of technologies used in web and mobile application development including user interface, SEO, analytics, eCRMPersonal Skills:* Ability… View full post on Dice.com – Web Marketing

View full post on WebProJobs.org

VN:F [1.9.22_1171]
Rating: 0.0/10 (0 votes cast)
VN:F [1.9.22_1171]
Rating: 0 (from 0 votes)

Program & Engagement Manager

eDynamic New York, NY
Job description: …Engagement Head – New York, NY/ Toronto, CanadaLocation: New York Duration: Full Time * Experience with Web Platforms * eCommerce, CMS or Web Development* Responsible for managing key accounts, and drive revenue and customer satisfaction goals… View full post on Dice.com – web

View full post on WebProJobs.org

VN:F [1.9.22_1171]
Rating: 0.0/10 (0 votes cast)
VN:F [1.9.22_1171]
Rating: 0 (from 0 votes)

Developer Engagement Specialist for Mobile applications

WA-Seattle, Mobile / Android Applications DeveloperIf you are a Mobile Applications Developer who enjoys creating new applications and leading development direction, please read on!What you need for this position:- 3+ years software development focused on mobile applicationsi.e. Windows Mobile, Mobile Web, Android- Java / Android / Open source development- Experience working as a team member involved in devel View full post on Monster Job Search Results mobile

View full post on WebProJobs.org

VN:F [1.9.22_1171]
Rating: 0.0/10 (0 votes cast)
VN:F [1.9.22_1171]
Rating: 0 (from 0 votes)

Consumer Engagement Director – Diabetes Prevention and Control Alliance

UnitedHealth Group Edina, MN
Job description: …Work closely with Marketing Partners to manage the consumer marketing communications development, review and approval processes, including assessing and continually improving the functionality and content of the consumer-brand web site.  Execute the marketing plan elements directly tied to… View full post on Dice.com – Web Marketing

View full post on WebProJobs.org

VN:F [1.9.22_1171]
Rating: 0.0/10 (0 votes cast)
VN:F [1.9.22_1171]
Rating: 0 (from 0 votes)