Web apps workgroup

We’ve been thinking a lot lately about finding new ways to give our students more computer programming skills. We don’t have a computer science major but are willing to do certificate/minor-type things that will help students succeed in their chosen major. One thought I had was to introduce students to web programming (scripting with PHP and database backend with MySQL because that’s what I know) but I’m not sure how to pitch that class (and at what level). Instead I thought I might just try to develop a club/group on campus that develops web apps to see where the sweet spot is.

Web vs mobile apps

This article helped me clarify my thoughts about why web and not mobile apps. Honestly, for me, it’s a learning curve thing, since I know how to do web stuff (I’ve written my own LMS, a course schedule web site for my institution, a site for concept tests/quizzes, a jeopardy quiz site, and an Arduino Internet of Things site (which I wrote about in my last post)). Also it seems that you don’t have to make a choice between apple and android if you go with web apps. However, I think we’ll concentrate on things that’ll work well on mobile browsers just to keep that audience in mind. It helps that Twitter Bootstrap is mobile-first.

Clients

The hope would be that we could develop something that people need. I wrote about something that I’d like a while ago so maybe we’d just start with that one (it’s a site where students could upload photos that would be added to an ongoing slideshow that would be projected). I’d love it if we could respond to the needs of the community to make things that are useful (and teach students some useful coding skills).

Approach

We would use github and trello to keep organized. Github would allow us to has a core of working code along with branches where new features are developed. Github would also let new people join in pretty easily, though a working project might be intimidating to some. At first at least we’d be coding in the Laravel PHP framework. Participants would need a development machine that could run Laravel/php along with mysql. Installing xampp would do the trick, along with composer to easily handle various code dependencies. Once they have those working (really it only takes about 10 minutes to get all that working on a windows machine) they would just pull down the githup repository they’d like to work on and they’re in business. Really the notion of handling code with others using git is a useful skill.

Trello is an awesome way for a group to keep track of what there is to do, who’s doing what, and what’s done. I used it to great effect this summer with my research students (here’s our public list).

Once students have got a cool feature working on their local machines I would just have to merge the repository and pull it down to the development machine (for now it’ll be physics.hamline .edu which is where all the examples above are hosted – eventually I would hope to get something like webapps.hamline.edu or something). That way I’d be the only one dealing with the production machine and any headaches that come with getting it working right. I really like how github would help with that (and how students can see the working code on their development machines without having to wait for me to get it up for the whole world).

Skills

I think it’ll be fun to work with students who are developing these types of skills. I think I’d be a little hands-off with dictating what we work on and how, but I’d probably stick to Laravel, Test Driven-Development, and mysql. If someone comes along with skills to get other approaches working, then sure! I got all excited about Meteor a few months ago but getting it to work on a server with ease of community-based updates was a big hassle (for me). So Laravel/PHP/MYSQL for us for now. I think that students who really put some effort into this will be able to easily sell their scripting and collaboration skills with some production code to show off.

What’s missing?

So what do you think. This is really just a 2-day-old brainstorm for the moment. I’d love some help moving this project forward. Here are some starters for you:

  • I love this. What I’d add is . . .
  • I hate this. Instead you should . . .
  • PHP?!??!! Why in the world would you expose students to that crappy approach? I’ve never heard of Laravel but I bet it’s a piece of crap built with crap.
  • Why not Django? I suppose you’re too scared to ask your ITS to add yet another module to Apache, huh?
  • Why not Meteor hosted on Galaxy? What are you, cheap?
  • Ooh I’ve got some great ideas for apps. Where would I send them?
  • Ooh I’d love to work on this. When are our meetings?
  • I don’t understand. I love the apps on my (fill in a brand of phone here). Why don’t you just develop more of those?
  • The photo/slideshow app you’re looking for exists. It’s called . . .
  • This sounds like a better class than a club/group. I think it should be called . . .
  • This should never be a class. Keeping it separate from students courses is smart.
Advertisements

About Andy "SuperFly" Rundquist

Professor of physics at Hamline University in St. Paul, MN
This entry was posted in technology. Bookmark the permalink.

3 Responses to Web apps workgroup

  1. Wyatt says:

    I love this, what I’d add is:

    * WAMP + Laravel is a perfectly reasonable stack. Don’t let anyone tell you otherwise. However, try recreating your simplest personal app in Rails. You might be pleasantly surprised. (I was.) You also might be able to get students from 0 to mycooldomain.com faster with a Jekyll + GitHub Pages approach. (Have you tried GitHub Pages?) While you can do a lot more with WAMP / Rails I’m a big believer in giving someone the experience of putting something, anything, real, that they coded on the web at a domain they picked. That can ignite the determination it takes to figure out WAMP / Rails. GitHub pages is the fastest A to B for that I’m aware of.
    * + 100 for git/GitHub, so useful in so many ways, and a professional must (that lots CS degree grads don’t have). It also makes code reviews possible, another useful experience.
    * +10 for introducing Bootstrap. It’s an absolute game changer, and a valuable competency, even for “back end / server side” devs.
    * I agree that native mobile apps are out of scope for your group, but there are paths that don’t require Objective C or Java – https://facebook.github.io/react-native/.
    * +5 for Trello, and +5 for Composer
    * If your students are working from the command line make sure to introduce Bash aliasing. That’s a super useful, super easy way to boost productivity. (Ex: alias gs=’git status’)
    * Depending on where you want to go with this group incorporating some Lean Startup basics could be valuable.
    * Having read this, I don’t know for sure what the objectives for the group are. Prepare for a web dev career? Prepare to build a web business? Be comfortable using web dev as a tool? Etc… The more clear the purpose is the more I could say on the subject.
    * Field trip to a local web dev conference or meetup? 🙂
    * What sort of outside involvement are you looking for?

    • Andy "SuperFly" Rundquist says:

      Thanks, Wyatt, this is very useful, especially coming from someone who both knows Hamline and is out there as a developer.

      The only reason I haven’t embraced things like rails or django is that I’m always nervous that I’ll have to fight with IT to make sure the server(s) will run that stuff. I think I’ll wait to see what the students want to do (while at the same time pushing for Laravel because that’s where I’m comfortable) and then decide if it’s worth the fight with IT.

      Your point about Jekyll and Githubpages is very interesting. I know a bunch of folks who use that for their own course pages so maybe encouraging students to do the same would be smart. At the very least we could make orphan gh-pages branches for our projects to tell the world about them.

      Your point about having a better focus is well taken. For now I’m really not sure what I’m after. I envision a group working on a few projects at a time so that they can get a lot of experience and the community gets some useful web apps. I also realize how much I enjoy doing this so all of it is pretty fun for me. Certainly another goal is to figure out what kinds of courses we should offer in this regard.

  2. Pingback: Interactive arduino internet-of-things | SuperFly Physics

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s