Project Ideas for 337

Here are a few ideas for 337 projects, in no particular order.

Board games
A number of classic board games can be easily turned into a web app. Chess, Checkers, Othello, Backgammon, and Scrabble, and Boggle come to mind immediately. This is not an AI class so I picture a two-player mode where the game just keeps track of state.

Possible ways to beef it up:

  • A game in progress should be able to be saved, to be resumed at a later time.
  • There should be a way to view the game move-by-move.
  • Any number of games should be able to be in progress at any point in time.
Find Yourself!
Before I learned the memorization technique I used on the first day of this class, I would take pictures of the class on the first day, edit the pictures to put a number beside each face, post the pictures on the course website and ask students to mail me their number (i.e., find themselves) and answer a few questions of the sort I asked you on Assignment 0. A web app could automate it.

Possible ways to beef it up:

  • Support any number of classes.
  • Allow an instructor to create their own set of questions.
  • Allow a student to reuse answers entered for another class
Information system for a simple business
Create a tiny information system for a small business. For example, imagine a self-storage company. They've got a collection of units of varying sizes with possibly varying attributes like climate controlled, 24-hour access, etc. Have screens for viewing available units, renting a unit, making a payment, etc.
Make the data from an existing website more usable
For example, consider the UA classroom database. A sad fact is that if you want to change classrooms, Room and Course Scheduling won't tell you which rooms are open. Instead you've got to give them a list of rooms in order of preference that you'd like, and they'll switch you to the first one that's open.

I'd like a web app that would "scrape" the data from the classroom database site and let me filter rooms on criteria like occupancy of 80-100 and having tiered seating. I'd like those rooms shown in a reorderable list that includes a picture of each.

I can't think of what else to add at the moment but this would probably need to be beefed up some to be an A-level project.

Flashcard system
There are plenty of flashcard systems on the web but that doesn't mean you can't make one, too! In the project.html write-up in assignment 6, I talk about a flashcard system for Braille that I'd like to have.
Cloud-based backup
Systems like Carbonite provide on-line backup of files. Their software uses operating systems hooks that are beyond the scope of this class but I believe creating a simple imitation could be easily in range. You would need a PHP program that walks a directory tree and for each file, checks with your web app to see if the server's backup is up to date. If not, it sends a copy. Another mode of operation would let you view the server's copies of the files. (Limit it to viewing plain text files and images.)
AnimalWatch Lite
AnimalWatch is a middle-school math tutoring system that integrates math and science by posing students word problems about endangered and invasive species. It was created by SISTA's Dr. Carole Beal and others. A MySQL database with the AnimalWatch problems, media, and anonymized student usage data is available for use by students in this class. If you happen to have an iPad, you can try the iOS version (or just see a few screenshots).

For a project in this class you might reproduce some portion of AnimalWatch's features, like posing word problems and tracking progress.

Good Call Football
Back in 2008 one of my clients was Good Call Sports. Their product was a fantasy sports game: Good Call Football. Players nationwide would watch a football game on live TV and predict plays with the GCF web app. Before each play, players would predict the upcoming play with varying levels of detail, like "run", "run to the right", "long pass". A "referee" in the GCF control center would freeze predictions just before the snap. Players would win or lose points based on the accuracy of their predictions with respect to what actually happened.

If you're a sports fan, you might have fun implementing a simple version of Good Call Football, or some other fantasy sports game.

Multi-user chat
It so happens that the first dollar I made as a programmer was earned writing a chat system in assembler on an IBM System/7, which had 32K 16-bit words. Chat systems are still being written, and you can write one, too! In terms of difficulty it seems like user sign-up, N simultaneous users, and storage of chat session text would be a minimum.