JiveWorld16 Official Hackathon Challenges

Version 25

     


     

    The Story

     

    Gary's Arcade

    A fictitious arcade company that has a Jive-x online community. The following personas should be used to articulate the challenges:

     

    Gary (Business Owner)Bob (IT/Developer)Jane (Customer)
    arcade-owner.jpg1446413078891.jpgarcade-player.jpg

    Gary grew up playing video games and is now a video arcade owner, along with several other businesses.  To help differentiate his arcade, he wants to build an online community that will let his customers connect with each other to share stories, schedule meet-ups/tournaments and brag about their video game dominance.  He is a strong business guy, but understands technology to make educated decisions when he is presented with options.  He loves numbers and is adamant about using data to make fact-based decisions.  Gary wants to re-invent his video arcade experience using Jive-x.

    Bob is the onsite do-it-all technician for Gary's video arcade.  When he's not helping customers in the arcade, he is usually building programs and services that can be used to help surface the information both he and Gary need to make the best possible decisions possible across all levels.  He is an avid developer and has experience in many languages, but he is looking to simplify his technical debt by moving to cloud-based components.  Bob reviewed community platforms per Gary's requirements and recommended Jive-x.

    Jane is a one of the Gary's most loyal customers.  She is a video game prodigy and has a passion for both nostalgic and modern arcade games.  She goes to school just down the street and often hangs out in the arcade at-least 3-4 times during the week, and more on the weekends.  She often brings her friends for competitions (who are very competitive) and they are always challenging each other to see who is the best on any one game.  She has used the arcade's new community for the past month and loves to earn rewards for her participation in the community.  She just wants to work hard and be the best gamer she can!

     

     


     

    The Challenges

     

    Middlewareless

     

    101 : Standard Connection via Basic AuthEasyREST API

    Technologies:

    Jive Core API

    Story:

    • Bob is creating an app that needs users to be able to to make REST API calls with their permissions so he is setting up Basic Auth access.

    Completion Goals:

    • Use CURL with basic auth to view API data

    Starting Points:

     

     

    102 : Standard Connection via Basic AuthEasyREST API

    Technologies:

    Jive Core API

    Story:

    • Bob is creating an app that requires admin access to make REST API calls, and needs to use OAuth

    Completion Goals:

    • Set up a simple add-on that can authenticate a Jive user via OAuth
    • Obtain an OAuth token via command line

    Starting Points:

     

     

    103 : Custom View Tiles - Level 1EasyTiles

    Technologies:

    Jive Core API

    Story:

    • Jane wants to be able to chat with the JiveDev Twitch.tv channel in her Jive group

    Completion Goals:

    • Embed Twitch Chat to a Jive View Tile

    Starting Points:

     

     

    202 : Custom View Tiles - Level 2MediumTiles

    Technologies:

    Jive Core API

    Story:

    • Jane would like to be able to see her Twitch name, profile image, and the number of followers above the chat channel in a matching UI

    Completion Goals:

    • Ask for the Twitch User ID
    • Show the profile picture, name for that user
    • Display the Twitch chat for the room below

    Starting Points:

     

     

    301 : Custom View Tiles - Level 3HardTiles

    Technologies:

    Jive Core API

    Story:

    • Bob wants users to have their Twitch ID stored within Jive so it can be accessed later for other/future integrations
    • When Jane visit the group for a specific game, she wants to be part of the Twitch chat channel that is related to the game.

    Completion

    • Store user's Twitch ID as a Jive External Prop
    • Get the current group name the user is in, search Twitch for a video game channel that matches the title and display it. If there is none that explicitly matches it, display the results of different chat groups the user can join.

    Starting Points:

     

     

    104 : Simple Stream Integrations - Level 1EasyTiles

    Technologies:

    Jive Core API

    Story:

    • Jane is wants everyone to know how l33t she is whenever she gets a new high score in a game.

    Completion Goals:

    Starting Points:

     

     

    203 : Simple Stream Integrations (w/Apps) - Level 2MediumTiles & Apps

    Technologies:

    Jive Core API

    Story

    • Jane wants to be able to view the Twitch TV videos related to the channel that generated the activity from within Jive.

    Completion Goals:

    • Within a Activity's embedded App, fetch Twitch.tv videos filtered to the channel of the video game (minimum search of 2, maximum of 10)
    • Display the apps that are click-able to open an embedded video within the app-view

    Starting Points:

     

     

    302 : Simple Stream Integrations (w/Apps) - Level 3HardTiles & Apps

    Technologies:

    Jive Core API

    Story

    • Jane has watched a few players on Twitch.tv and really likes their gameplay style and wants to subscribe to them from within Jive.
    • Bob wants all communications regarding such a transaction to be secure and not  expose his Auth Code Grant token to the world.

    Completion Goals:

    • Set up Jive Connects, add the required alias to app.xml: jive:service://twitch.tv/api?version=1
    • Show a subscribe button appropriate to the video being watched, subscribe the user to the broadcaster.

    Starting Points:

     

     

    105 : Apps - Getting StartedEasyApps

    Technologies:

    Jive Core API

    Story:

    • Jane wants to be able to mention people that are on Twitch in her Jive blog posts easily and for people to visit those users on Twitch

    Completion Goals:

    • Create a !app that allows you to search for a channel on Twitch.tv and embeds that hyperlinked channel to the content

    Starting Points:

     

     

    106 : Apps - Level 1EasyApps

    Technologies:

    Jive Core API

    Story:

    • Jane not only likes playing arcade and video games, she also loves trivia and wants to be able to test her video game knowledge while she's in the community.

    Completion Goals:

    • Create a small trivia app that a user can load and play

    Starting Points:

     

     

    204 : Apps - level 2-1MediumApps

    Technologies:

    Jive Core API

    Story:

    • Jane is feeling really confident about her trivia knowledge and wants to be able to easily create her own for others to play.
    • Jane wants to create a real competition. Finally extend the app to save results and display a leaderboard.

    Completion Goals:

    • Further extend the trivia app by showing multiple trivia question/multiple choice loaded from a doc.
    • Persist the app data within Jive to save scores and display a leaderboard.

    Starting Points:

     

     

    205 : Apps - level 2-2MediumApps

    Technologies:

    Jive Core API

    Story:

    • Gary wants the quiz game to post scores and a photo to the stream each time someone plays

    Completion Goals:

    • When someone completes a quiz, let them upload a photo.
    • Post to the activity stream showing their score and photo

    Starting Points:

     

     

    201 : BatchMediumBatch

    Technologies:

    Jive Core API

    Story:

    • Bob looked at some of his performance metrics of his app and saw that he has a block of API requests that are run and do not depend on each other. To improve the performance, he would like to group them into one request.

    Completion Goals:

    • Get the trending content of ten users with only a single API call

    Starting Points:

     

     

    107 : Analytics - DES - Level 1EasyAnalytics

    Technologies:

    Jive Core API

    Story:

    • Gary wants analytics on his community
    • Bob uses the DES Explorer to learn how to use the API

    Completion Goals:

    • Login to API Explorer
      • Client ID: d864bw97idkxkliecperu76ff5jm2mmq.i
      • Secret: 9savi0gx9qyvue0f5ulwtmx2rvedgmp4.s
    • Use the UI to explore the metrics
    • Answer the following questions:
      • How many questions have a correct answer?
      • How many likes does a document have?
      • How many times has a documented been viewed, by someone in the "Engineering" Department

    Starting Points:

     

     

    206 : Analytics - DES - Level 2MediumAnalytics

    Technologies:

    Jive Core API

    Story:

    • Bob wants to test some queries directly against the command line to capture key data

    Completion Goals:

    • CURL directly against the Data Export API
    • Answer the following questions:
      • List of all executives who viewed this blog (department = executive)
      • Filter based on a profile

    Starting Points:

     

     

    308 :Analytics - DES - Level 3HardAnalytics

    Technologies:

    Jive Data Export Service API

    Story:

    • Gary wants to see what users are active, passive, and inactive on the community
    • Bob uses the writes a script using the DES API to get this information

    Completion Goals:

    • Curl against the Data Export API
    • Determine what users are active/passive/inactive
    • Write a script: It will return a list of active/passive/inactive users

    For any given day, the essence of the calculation is:

    • For user A, did he create a content item in the last 30 days if so then mark as contributor
    • For user A, did he respond to a content item in the last 30 days if so then mark as participant
    • For user A, did he view a content item in the last 30 days if so then mark as active
    • Do so for all users...
    • Sum number of contributors, participants, active users and store for that day

    Starting Points:

     

     

    108 : Advanced Add-On FeaturesEasyAdvanced Add-on Features

    Technologies:

    Jive Apps

    Story:

    • The legal department told Gary that the app needs a End User License agreement

    Completion Goals:

    • Add an End User License to the trivia app

    Starting Points:

     

     

    207 : Advanced Add-On FeaturesMediumAdvanced Add-on Features

    Technologies:

    Jive Apps

    Story:

    • Bob wants to add a setting to control the difficulty of the questions

    Completion Goals:

    • Add a configuration page to the trivia app
    • Have it store the configuration in config props
    • Edit the app view to read the config data and apply it
    • For each difficulty, use a different document of questions

    Starting Points:

     

     

    109 : Build a Jive Anywhere CartridgeEasyCartridges

    Technologies:

    Jive Anywhere Cartridges

    Story:

    • Gary wants to know what games to add to his arcade from his customers and let them discuss it on Jive

    Completion Goals:

    • Use the Jive Anywhere built in Cartridge Builder
    • Create a cartridge for the Twitch.tv Games directory

    Starting Points:

     

     

    208 : Enhance a site using Jive Anywhere CartridgeMediumCartridges

    Technologies:

    Jive Anywhere Cartridges

    Story:

    • Gary wants it to be very easy, prominent, and match the style of Twitch for his customers to post on Jive

    Completion Goals:

    • Use the Cartridge Builder
    • Build a Twitch.tv Cartridge that adds a "Discuss on Gary's Arcade" button

    Starting Points:

     

     


     

     

    With Middleware

     

    112 : Content Webhook (Outbound)EasyREST API w/Middleware

    Technologies:

    Jive Core API

    Story:

    • Gary has hired a writer to update all of his game information documents. He wants to be notified whenever one of those documents is updated

    Completion Goals:

    • Verify that the webhook was called by making a call to /contents/ to verify.

    Starting Points:

     

     

    113 : System Webhook (Outbound)EasyREST API w/Middleware

    Technologies:

    Jive Core API

    Story:

    • Gary would like to be notified whenever a new user joins the arcade community.

    Completion Goals:

    • Persist the new user's given name and show that list from an endpoint in your middleware service.

    Starting Points:

     

     

    114 : Activity Stream (Basic)EasyTiles w/Middleware

    Technologies:

    Activity Streams

    Story:

    • Jane would like to know when there's a new video added to a specific channel/game on Twitch.tv

    Completion Goals:

    • Poll the /channels/:channel/videos endpoint on Twitch, and post an activity once a new video has been uploaded. (make sure your poll interval is 30 seconds or greater)
    • An simple text activity should be displayed containing the video title and description along with URL in the URL field.

    Starting Points:

     

     

    210 : Activity Stream (Full)MediumTiles w/Middleware

    Technologies:

    Activity Streams

    Story:

    • Jane would like to be able to view that video without being taken to Twitch.tv and also see the next 3 videos available for viewing in that channel.

    Completion Goals:

    • Embed the video in an app view
    • Get a list of the NEXT 3 videos for that particular channel and display them below the iframe with the preview image and title.

    Starting Points:

     

     

    115 : List Tiles (Basic)EasyTiles w/Middleware

    Technologies:

    Tiles

    Story:

    • Gary wants to display top 5 leaderboard for GunSmoke

    Completion Goals:

    Starting Points:

     

     

    211 : List Tiles w/Tile ActionMediumTiles w/Middleware

    Technologies:

    Tiles

    Story:

    • Gary wants to display leaderboards for each of his games
    • Jane wants get more info on the game from the leaderboard

    Completion Goals:

    Starting Points:

     

     

    212 : Advanced Add-on FeaturesMediumAdd-on w/Middleware

    Technologies:

    Add-ons

    Story:

    • Bob wants to get his add-on ready for production

    Completion Goals:

    • Implement a HealthStatus for the add-on to report when the service and it's backend dependencies are healthy.
    • Implement an add-on configuration telling it which backend service to talk to.

    Starting Points:

     

     


     

     

    Jive iPaaS

     

    116 : TilesEasyTiles w/Jive iPaaS

    Technologies:

    Tiles

    Story:

    • Jane wants to check-in to a game

    Completion Goals:

    • Create a Custom View Tile
    • Call a endpoint and persist the game, timestamp, and user ID within Jive iPaaS
    • User can only check in once per day

    Starting Points:

     

     

    117 : AppsEasyApps w/Jive iPaaS

    Technologies:

    Apps

    Story:

    • Gary knows how much his customers love to watch other gamers on Twitch.tv, and he wants to keep them engaged while keeping them in the community.

    Completion Goals:

    • Create a Place Tab App with that displays videos from a Twitch channel

    Starting Points:

     

     

    213 : Apps (Custom)MediumApps w/Jive iPaaS

    Technologies:

    Apps

    Story:

    • Gary wants to keep track of which videos his customers click from the Place Tab App and be able to pull that down later for analysis.

    Completion Goals:

    • Use the Place Tab App from above and instead of making a client-side app, provide a backend that persists some of the user data.

    Starting Points:

     

     

    118 : Activity Stream - Basic PushEasyTiles w/Jive iPaaS

    Technologies:

    Activity Stream

    Story:

    • Jane wants to see an activity posted when a new video is posted for a game.
    • Bob knows that Twitch doesn't support webhooks and doesn't want to setup and maintain a middleware service to see when there is a new video posted to a channel.

    Completion Goals:

    • Create a Activity Stream integration with Jive iPaaS that periodically checks Twitch for new videos in the appropriate channel.
    • If there is a new video in the said channel, it posts an activity in the Jive Group

    Starting Points:

     

     

    214 : Advanced Webhooks UseMediumREST API & Tiles w/Jive iPaaS

    Technologies:

    Jive Core API

    Story:

    • No bullying and harassment enforcement

    Completion Goals:

    • Create a bot that looks for certain words in comments and gives a warning as a reply to the user.
    • Keep a log of the number of user violations and include that number in the reply.

    Starting Points:

     

     

    119 : Data ExporterEasyJive iPaaS

    Technologies:

    Jive iPaaS

    Story:

    • Gary just installed a new game in his arcade and wants to see how engaged people are about that game.

    Completion Goals:

    • Use the Data Exporter to view the discussions and comments about a particular game/group.

    Starting Points:

     

     

    215 : AppsMediumApps w/Jive iPaaS

    Technologies:

    Apps

    Story:

    • Bob wants to extend the features of the app by making it easier for his boss to get reports and/or customers to get rewarded

    Completion Goals:

    • Take either the 120 challenge or 213 challenge and build on it to provide easy to digest visuals for them either within Jive based on their permission group or in an external source.

    Starting Points:

     

     

    304 : ESFHardESF w/Jive iPaaS

    Technologies:

    External Storage

    Story:

    • Bob wants to create the simplest external storage solution with the least overhead possible.

    Completion Goals:

    • Create a ESF integration that allows for a user to perform basic operations from any provider.

    Starting Points:

     

     


     

     

    Microservices w/Docker (Google Cloud Platform)

     

    120 : Deploy Jive Service on Google Compute EngineEasyMicroservices

    Technologies:

    Google Compute Engine

    Story:

    • Bob would like to deploy his middleware to google's cloud platform.

    Completion Goals:

    • Provision a host on gcloud
    • Deploy and run your middleware on this host
    • Use gcloud's networking to make your service accessible from a Jive instance

    Starting Points:

     

     

    216 : Deploy Jive Service on Google Container EngineMediumMicroservices

    Technologies:

    Google Container Engine

    Story:

    • Bob wants to take advantage of google's container platform to save on devops cost. Deploy one of your own services or the example jive service on a kubernetes cluster

    Completion Goals:

    Starting Points:

     

     

    306 : Deploy Advanced Jive Service on Google Container EngineHardMicroservices

    Technologies:

    Google Container Engine

    Story:

    • Bob wants to take advantage of google's container platform to save on devops cost.

    Completion Goals:

    Starting Points:

     

     


     

     

    Built.io

     

    110 : EasyBuilt.io

    Technologies:

    Story:

    • Gary has had some trouble staying organized recently and is looking for help to make sure he doesn't miss anything important.

    Completion Goals:

    • Register for a Built.io Flow Trial Account
    • Create a new Built.io Flow with a connection to the Jive Sandbox
    • Add a Jive "Create" activity (Inbox, Task, etc.) integration
    • Create the activity in Jive

    Starting Points:

     

     

    111 : EasyBuilt.io

    Technologies:

    • Built.io Flow
    • Jive Get Person Activity
    • 3rd-Party Service (Your Choice)

    Story:

    • Gary heard that reaching out to new and returning customers will help improve customer satisfaction and ultimately bring him more business.

    Completion Goals:

    • Connect to the Jive Sandbox and get a user.
    • Send a personalized outreach to the user (email, tweet, sms, etc.)

    Starting Points:

     

     

    209 : MediumBuilt.io

    Technologies:

    Story:

    • Gary has been really excited about all the automation you've built for him and is looking for more help connecting his disconnected systems.

    Completion Goals:

    • Connect to the Jive Sandbox and either get or submit new information.
    • Connect at least 3 additional 3rd-party services.
    • Executing a Flow should either get or submit data from each of the three systems and Jive.

    Starting Points:

     

     

    304 : HardBuilt.io

    Technologies:

    • Built.io Flow
    • Jive
    • At least 4 3rd-Party Services (Your Choice)
    • Built.io Flow Triggers

    Story:

    • Gary loves all the integrations you built for him but has thrown you a curve ball. He's gotten really busy and even with the organization system you set up for him, he's still missing things. He's asked you to help automate things so he doesn't need to do anything day-to-day to keep things up and running

    Completion Goals:

    • Connect to the Jive Sandbox and either get or submit new information.
    • Connect at least 4 additional 3rd-party services.
    • Setup a trigger so that an action or information change automatically causes the Flow to run.
    • Executing a Flow should either get or submit data from each of the three systems and Jive.

    Starting Points:

     

     


     

    Pebble

     

    303 : Pebble Health + Jive WatchFace or WatchAppHardPebble

    Technologies:

    Pebble, Custom

    Story:

    • Gary is looking for ways to get his customers to be more healthy and engaged. He wants to take their submitted health data and turn it into a competition or game.

    Completion Goals:

    • Use Pebble Health API's (any) to create a game or competition within Jive

    Starting Points:

     

     

    307 : Jive Business Use Case WatchFace or WatchAppHardPebble

    Technologies:

    Pebble, Custom

    Story:

    • Gary sees a lot of potential uses for the extra data that's available from the wearables his customers are using. He also likes the fact that there is another medium to reach, engage, and entertain his customers.

    Completion Goals:

    • Create an actual business use case that could be solved using Pebble API's and Jive
    • Build the WatchFace/WatchApp and Integration as an example of solving the business problem

    Starting Points: