Tag: Slack

Goblin as OER

Our Goblin mascot is represented as a hooded figure wearing goggles and carrying a package
While the thought of gamifying an entire class or even elements of a class will be daunting for many, GOBLIN also includes more universal and applicable concepts.  Well designed games introduce game mechanics and then increase the difficulty of tasks to encourage mastery of those mechanics.  They encourage team work, challenging players to combine the strengths and overcome the weaknesses of team members. They allow you to lose and to learn from that failure to improve.  By adapting these lessons for the classroom, we seek to improve student engagement and help students master the skills to succeed in college.

We hope that the design of GOBLIN will be more entertaining and provide better transference of skills than traditional lecture- or seminar-based workshops. The whole point of the project is to think about how we can create more active and engaging environments that motivate students to learn.

Open content was key in building this project.  The most visible example of open content in GOBLIN is the integration of artwork from Glitch the Game. When the game was discontinued in 2012, the programming team at Tiny Speck (many of whom served as the developmental team for the giant communication app Slack) released both the game code and the creative assets as open content in the public domain.  This meant that we could use any assets from Glitch to develop GOBLIN.

The ability to repurpose this artwork from the public domain inspired our storylines and allowed us to focus on developing game mechanics and instructional content.  All of this would not have been possible without the availability of high quality open content. For this we are grateful to Glitch creators.

We also drew on other open content resources including pixabay.com, a repository for open source artwork was phenomenal for acquiring content. Unsplash is another fantastic source for high-resolution, breathtaking photographs that can be freely used.

All of these resources hold a special place in our hearts, because they are aligned with personal philosophies on educational materials: open access content is best.  While, we intend to run this series as often as we can find interested folks to participate, we hope to reach a far larger audience outside the campus of OU by offering the website as an open educational resource.

We encourage anyone visiting the site to run their own versions of Goblin by using the site or by building and improving their own forked version.  To that end, we have used the Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International license throughout the site to assure users that they are welcome to use and adapt any material presented as long as they attribute it and don’t charge money for it.  Let us know if you want help in playing the game, using the resources, or adapting the workshops in whatever way suits you best.

We encourage you to consider sharing your next project as an open piece of content. Together, we can build even greater projects with the option to iterate and grow from other pieces of content.

My first plugin

*The opensource code for the BadgeOS_Slack integration plugin can be found at the OUDigilearn GitHub site: https://github.com/oudiglearn/BadgeOS_Slack-Integration.

InSlack message board window my office (the University of Oklahoma’s Center for Teaching Excellence), we use Slack for internal communication.  Slack is a wonderful group messaging system.  I can message a single co-worker about a project that we’re working on or taunt them after my Red Devils beat their Gooners.  I can also post messages to office chat boards that anyone in the office can sign up for.  Our #food_n_drink board regularly has updates on people’s lunch plans, and the #office_decor board was useful when we moved into our new space.  There are also private groups where you can talk to your team, a sub group, or an interest group (e.g. our ball_is_life board that is devoted solely to basketball and soccer news).  Slack combines the utility of person-to-person text messaging with group texting and thematic discussion boards.

One of my pet projects here has been to develop WordPress BadgeOS systems. I have been using BadgeOS to design a lightweight Learning Management System to incentivize skill based learning and combine those skills into lessons, units, and courses.  As a test of the system, I also built a badging system for our office. The idea is that you get lightweight, relatively silly badges for doing the simple things that improve an office.  If you bring donuts for the office you earn a Sweetie Pie badge.  If you run an errand for someone to drop off a package or pick up a soda, you earn a Gopher badge.  The first person to the office each day gets the Early Bird Badge, and if you work late, you get the Night Owl badge.

None of the badges have intrinsic value, but they offer some small degree of recognition for doing your work or doing something that improves the office. The system allows my colleagues to nominate our office mates for badges and allows me as the moderator to award some badges directly (the winner of the office’s NCAA Tourney Bracket Challenge for example).  I was able to build out the system over the summer, and we are still tinkering with the exact names and descriptions of the badges.  The main restriction on the system though is that my coworkers already have work on so many websites and systems that adding another to the daily checklist doesn’t make sense.

My solution was to integrate my badge system with Slack. I wanted to push notifications of BadgeOS achievements so that winners were notified in the office’s primary messaging system.  Slack programmers along with a legion of open source coders on Github and the web generally have been adding Slack integrations to all sorts of other programs. There are several variations already in existence just for WordPress.  However, there was not an integration built for BadgeOS.  Trusting my 13 year old programming skills (I started college as a CS major learning java), I decided to build my own.

My refresher course on coding was fairly short.  The API tutorials on Codecademy and  Lynda (OU now offers all it’s students and faculty full access) got me up to speed on the basics of API interactions.  After reviewing the strong WordPress and BadgeOS API guides, I was ready for the key step – forking established code.

For the uninitiated, forking is the practice of replicating something and then adapting the copy to your specific needs. Before starting any coding project, check to see what others have already done and think seriously about forking a project to fit your needs rather than writing from scratch. Github is built around this concept serving as a repository to a huge variety of open source code that can be refined, extended, or forked.

I started off by forking the JP bbPress Slack Integration which pushes BuddyPress forum posts to Slack.  In this WordPress php plugin, Josh Pollock pushed new BuddyPress posts and replies from WordPress to Slack’s incoming Webhooks.  By encoding the BuddyPress posts in JSON text package, Josh could feed the posts into a Slack message board.  My fork replaced the JSON package from the original plugin with a package derived from BadgeOS variables.

Side by side comparison of php code

In the original JP bbPress Slack Integration, a new bbPress post would trigger an add on function that posted to Slack’s incoming Webhook via API feed.  In my fork, a BadgeOS achievement award triggers a similar add on function to Slack’s incoming Webhook.  By replacing the trigger action and a few of the variables in the JSON package, I quickly adapted Josh’s plugin to my needs.  Now, whenever my system awards someone a badge, it automatically sends that person’s first name, the badge title, and the link for the badge to Slack and displays a message in our #all_things_badge Slack board.

Slack message board window


On the small and immediate scale, my love of puzzle solving and my self-image as a digital researcher were sated. On a larger, more universal scale though, I proved (for myself at least) that someone with old, rusty programming skills and a vague mission could write useful code by forking already existing projects. In creating my first plugin, I found a useful, open source starting point and adapted it to the needs of my office and ultimately my students. Educational Technology does not have to be the domain of the large-scale, all-encompassing, professionally developed apps but can be incrementally built by teachers to fit our needs.

Powered by WordPress & Theme by Anders Norén