Saints Rewards: Part 2 – Database Schema

This is part two of a series about the process of what we do as the Interactive Media Group. In case you missed Part 1, you can find it here: Saints Rewards: Part 1 – Introduction.

This is probably my favorite part in the entire process of creating a new application: setting up the database schema! Whoo-hoo, right! I know, I can’t wait either! For those looking for the regular sarcasm, I’m being serious. Database design is fun and challenging, and I enjoy it. Maybe I should see a support group…


Anyway, here is a quick glance of what I have mocked up for the database tables so far (ignore the chicken scratch!). I envision 4 main tables to store the data for this project.

The Event table will be pretty standard. The numPoints field may seem a little strange, but I want to make this extendable where the administrators can change point values for a certain event. I’ll also setup a default value that can be configured by the administrator. One thing I’m changing from the previous version is adding a category (from Event Category table) to the Event. I thought it might be beneficial to see what kind of events students are attending most often. This way we can run reports to find out if students are attending athletic events more than CAB events for example.

Developer Note: In most of my tables, I add a boolean field (true/false) called active to determine if an item has been removed by the user or not. I’ve been stung more than once where someone has deleted something and immediately wanted it back. So, now all I have to do is go back into the database and mark that item as active again. Bingo bango!

The Event_Participant_Joiner table is a common practice in programming to tie two different objects together. In this case, we are tying an Event and Participant (or student) together. This will keep track of the eventID, studentID and number of points (numPoints) in one place. Typically, I would not include numPoints because it’s already stored in the Event table and we could look it up based on the eventID field, but they wanted the ability to customize a participant’s number of points based on circumstances (if they are dressed up or extra spirited, for example).

The Level table is out in lala land currently. I see this as being calculated on the fly and just being for reference. As a student’s ID card is scanned, it will be grabbing all of the records from the Event_Participant_Joiner table based on their studentID. It will then calculate the sum of all the numPoints fields returned. If they level up, they will be notified via email. You may have noticed we have a field named emailText. This field will be used to generate the actual email sent to the student when they level up. I have included the imageUrl field which I’m hoping to be able to use by having Katrina create badges for the different levels.

The student data cloud in the middle of the image is an existing set of data that we have accessible to pull certain things (name, email, etc). All of the orange lines point to foreign keys in another table.

I hope this has been helpful. If you have questions, fire up the ol’ comment box down below!

Move It Along!

Saints Rewards: Part 1 – Introduction

So, I’m looking at our blog and it is sorely out of date! I was just wondering today what I could write about to spice up the site a little bit.

The Brainchild

My goal is to give you kind folks an idea into our world and development cycle. I’m hoping for this to be a series of posts highlighting the process we go through when creating our “interactive magicness”.

The Project

Today, I met with some folks about implementing a rewards program for students that attend different events on campus. Luckily, I had already worked on something similar to this a couple of years ago for the Campus Activities Board (CAB). The previous application allowed someone with a laptop to scan student ID cards at campus events and the students would receive rewards after attending ‘x’ number of events.

So what’s changing? What’s the Twist?

The new application will be a points system to reward students for attending events on campus. It will need to have a leader board for the students to view and see where they are in the standings. As they attend more events they will increase their level (level up). I’m not sure at this point if they receive prizes as they level up. I believe there are prizes at the end of the contest for the top students.

Integration?

As our department is responsible for the digital signs on campus, I think it would be a fun idea to create a couple of digital signs showing the leader boards and another showing upcoming events to earn points.

Platform?

The existing application is written in ASP.NET/C#. We’ll be sticking with ASP.NET/C# for this new application and putting it on our intranet server.

Who’s Involved?

Kate will be involved with creating the digital signs using Adobe Flash. Katrina will be involved with creating any graphics needed for the project. I’ll be creating the database schema and doing the programming work involved for the back-end of this beast. Last but not least, Michael will be there for moral support!

Deadline?

The much anticipated launch date is January 2013.

So who’s with us? Anyone out there interested in a peek at our world?

Giddyup, what’s next?

WordPress Multisite Roles Plugin

WordPress logoPart of my job as Web Application Developer at Maryville is to evaluate the tools we use for our website and decide if they are functioning the way they should. We’ve had our fair share of problems with our current content management system (CMS) that we implemented in 2008 and have decided to make the move to WordPress Multisite. For those unfamiliar with WordPress Multisite, it allows you to take a normal WordPress site and create multiple WordPress sites (a network) within one installation of WordPress.

Part of my role in this migration will be setting up the proper permissions for users across the network. If you are at all familiar with WordPress (or pretty much any CMS) it has the idea of roles for a user. Am I an administrator, editor, contributor and what actions can I do in the CMS? With WordPress Multisite, this is slightly more complicated; a user can be an editor in the Academics site, but only be a contributor in the Admissions site (or not have any permissions at all). There is a set of standard roles built in to WordPress, but you have the option to create some unique roles. Now, I want to keep this as simple for myself as possible; I don’t want to recreate that same role on 20 different WordPress sites across our network (Academics, Admissions, Student Life, etc).

Enter the Multisite Roles plugin! Initially, I was going to build a brand new plugin for creating roles network-wide, and I decided to leverage an existing plugin: Members. WordPress has this idea of hooks built into it; as a developer, you can leave a spot for other developers to “hook” into your code and do something. After a short email discussion with the developer of the Members plugin, he has agreed to put a couple hooks into his next release. This will allow my plugin to synchronize roles between all of the sites on our WordPress network when one of the roles is updated.

As soon as the next version of the Members plugin is released, you can expect to see the Multisite Roles plugin land on the wordpress.org plugin repository.

Live Music, Beer, and a little bit of Web Development!

#heweb2011 was an intense conference held in the midst of lots of live music and beer in Austin, TX. We had a fast-paced schedule sure to make even the most seasoned veteran’s head explode! Monday, 7 sessions and a keynote during lunch. Tuesday, 5 sessions and a keynote during lunch. Wednesday, you get the opportunity to view 2 of the “best of” tracks from all the sessions.

Below is a list of the sessions I attended with a link to the original description on the conference site. At the bottom, I’ve highlighted my favorite of all the sessions.

Monday, October 24th

Tuesday, October 25th

Wednesday, October 26th

My Favorite Session

What Colleges Can Learn From The Insane Clown Posse

This session was fantastic! I got lucky enough to catch it on Wednesday as a repeat session. It was said there were 4 lessons to take away:

  1. Know exactly who you are (as a university), and never change anything about it
    • Create content/media for your niche
  2. Create an engaging experience for your audience
  3. Don’t be afraid to take risks
    • People are going to be upset about bold changes…deal with it. This basically means that not everyone (faculty, staff, alumni) will agree with what we are doing, but it’s not for them! It’s for the students
  4. Ask “why not?”
    • When people tell you no on something, ask why not. Find out what their reasoning is and try to figure a way around it. She even suggested going around that person if you can’t get anywhere with them and try someone else (if at all possible)

The speaker encouraged everyone to go back and not be a victim; find the time whether at home or during work to finish that one project that you personally want to see out there. You, as the web professional, have to stay engaged to make engaging material for the students. And keep learning…once you stop learning, you start to lose some of those creative juices.

I’m so glad that we are given this great opportunity to get off campus and network with other higher ed web professionals. It’s amazing how we all have the same problems, whether political or technological. We are not alone in this journey to make the web better. In conclusion, if you are a higher ed web professional and on the fence about whether to attend this conference, don’t think about it any longer; just do it already! You’ll thank me later.

See you all next year in Milwaukee!

HighEdWeb 2011, here we come!

HighEdWebBoy am I ready for some warmer weather! Just in time for HighEdWeb 2011, hosted in beautiful Austin, TX. Ronnie, Mario, and myself will be making the trip down south on Sunday and coming back Wednesday. And darn the bad luck, we’ll be there the same time as Austin Beek Week.

I’m hoping to post notes from my sessions online during the conference, so sit tight and watch for some great information to flow online. Hopefully Ronnie and Mario hop on the bandwagon too!

You can follow all the fun details of the conference from the twitter hash tag: #heweb11.

Yeehaw!

How To: Display Comment Author Photo in WordPress

While browsing this site, you may have noticed in the comments that some people have photos and some don’t. Well, WordPress uses a nifty service called Gravatar that allows you to create an account and setup photos to be used in comments on various sites.

It allows you to enter multiple email addresses and set a different photo for each email (as seen below). All of this happens automatically with WordPress once you’ve created your gravatar account. You might have to wait a few minutes for it to become active.

So if you don’t want to be left in the dust as a silhouette, I’d suggest creating your own account.

Steve Jobs 1955-2011

“Here’s to the crazy ones, the misfits, the rebels, the troublemakers, the round pegs in the square holes… the ones who see things differently — they’re not fond of rules… You can quote them, disagree with them, glorify or vilify them, but the only thing you can’t do is ignore them because they change things… they push the human race forward, and while some may see them as the crazy ones, we see genius, because the ones who are crazy enough to think that they can change the world, are the ones who do.”
-Steve Jobs

The universe of design, innovation and creativity lost one of its principal members this week, Steve Jobs. Simple excellence. That was the design philosophy behind Jobs leadership at Apple. He didn’t hire computer programmers or application developers. He hired artists, musicians, zoologist and writers, who built computers. He hired the crazy ones, the ones with a passion for what they do but moreover a passion for what they create. He hired the misfits.

Jobs expected excellence. He put creative people in an innovative environment and moved the nonsense of running a business out of the way. He inspired the misfits to listen to their intuition, not focus groups. He cultivated creativity. The results were nothing short of breakthrough. He and his team at Apple changed the way we listen, learn, create and collaborate. This is his legacy.

What is yours? What is your design philosophy, your mantra, your principle to live by? How or for what do you want to be remembered? What have you created today? What will you create tomorrow? I challenge each of us to find our inner misfit, our crazy idea. Then make it happen. Don’t wait for permission. Who are you really? Listen for your inner inspiration, then act. Run. Go make trouble. Jump dead center into the square hole. The early death of Steve Jobs reminds us, time is short. What are you waiting for?

Go build your legacy.

Got Inspiration???

in·spi·ra·tion Noun /ˌinspəˈrāSHən/
1. The process of being mentally stimulated to do or feel something,
esp. to do something creative: “flashes of inspiration“.
2.  The quality of having been so stimulated, esp. when evident
something: “a moment of inspiration in an otherwise dull display”
3.    A sudden brilliant, creative, or timely idea

my sweet girls . . .

While I was somewhat apprehensive, I did look forward to tackling a writing exercise here on our Interactive Media Group blog. Though seemingly a simple task, there is more to it than meets the eye. After hours, days, then weeks of contemplating what to write about I have come to a conclusion. There simply has not been anything inspirational to me as of late. Thinking that by characterizing several of my own ideas this may inspire me to write the most awesome of blogs. They are as follows:

  • Reminiscing upon the past with a dear friend . . .
  • Early a.m. walks on a crisp dewy morning . . .
  • Music . . . ALL music . . shall I say anymore . . .
  • A cool autumn day during the peak of fall foliage . . .
  • My two daughters pretending to be just like “mommy” . . .
  • Deep blue skies with billowy white clouds . . .

As my thoughts reeled, I finally came upon my Ah-Ha moment. Yes, interesting enough, “Ah-Ha moment” great subject for yet a second blog. While turning the perfectionist side of my brain off, I realized that inspiration and creativity are always there. It’s just that initial push that is needed or that “Ghost Writer” to get the ball rolling.  Subsequently, I realized that I had just wrote my very first blog.  Now to conclude, why not talk to my audience and ask the masses for their opinion on inspiration . . .

So without further adieu . . .
Tell me what Inspires YOU?

Ghost Writer

I am the ghost writer for Katrina. Hmmm? What would I write about if I were Katrina. I might write about my two beautiful daughters, and soccer games and dance recitals and student government assignments. I might write about that. Or I might write about my kitchen, my beautifully remodeled kitchen. Don’t get me started. I don’t think I’d like to write about my kitchen right now.

my boss
Me and my boss and a really nice party.
I shall write about my boss. She is the best boss in all of the land. If there were a real mirror, mirror on the wall, my boss would be voted the fairest of them all. I just really like my boss. She’s wonderful really. And pretty. And smart. I think that I will get her something really nice for her birthday and for Christmas and for Bosses Day too. Did I mention how pretty and smart my boss is? I really enjoy writing about my boss.

I am the ghost writer for Katrina. What shall I write about?

Visions of Paradise

Rainy days are such prime stretches for quiet reflection that I can’t believe poems ever get written in the sunshine. These are the days I love to take a nap, or visit a bookstore. If I could take a nap in a bookstore on a rainy day, after some quiet reflecting, that would be a beautiful thing.

One of the books I have hauled up the stairs to my new office is a fairly recent acquisition called “Visions of Paradise.” It was produced by the sharp, photo-loving folks at National Geographic. I love several things about this book. It does have striking pictures. It has really good captions too — which are really small poems (or should be). And I love that I purchased this big beautiful book for $2.46 off a discount rack. And while it is full of beautiful images from very exotic places I will likely never go — the thing I love most about the book are the handful of images that aren’t very striking maybe, and aren’t in exotic places at all — but they are included because they are the place the photographer loves to be most of all. That is paradise for them.

My favorite example is a spread on pages 216 and 217. It’s a photo of an older man holding a big largemouth bass. The light is almost gone, the subject looks barely willing to pose (or at least a long way from excited) the color is wretched and it’s blurry. Like, I just learned how to use a camera blurry.

But it’s the photog’s father in the picture. And they are standing in the last of the light in the backyard of his childhood home after a remarkable day of fishing. The fish is an exceptional specimen — about as large as any bass I’ve ever caught. And his father is proud of his catch, clearly. Being there, with him, after a day on the water, was as close to paradise as he could get. I think I understand that.

Several years ago I wrote a poem about a man who was my neighbor at the time. He has since passed on. We had one talk in his living room where he told me about a place he had been and always wanted to go back. It was his vision of paradise, he told me in his own way.

I think most of us harbor something, or someplace or maybe even somebody like that.

One of mine is a small river in central Florida. My family vacationed there when we could afford to and we loved it. The water was spring fed, very cold and very clear. You could see all the way to the bottom, even 40, 50 feet down and more. Schools of mullet and sheepshead fish, alligators, snapping turtles, great blue herons and manatees all thrived in and around the river. It was a magic, wonderful and happy place for me and my family.

On my honeymoon, my wife and I stopped and stayed the night close to this river and spent the next morning kayaking down it. It was a glorious morning and a wonderful time. But it wasn’t at all what I remembered in many ways. It was smaller than I had made it to be, and I learned something that feels very important to me now — our visions of paradise are too small. That, and we can’t ever go back. Not really.

So at some point, we must look forward. Which is where I want to leave off with this entry: where would you most like to go?