Last week, I was sitting with some friends as we discussed our newly assigned schedules for the semester. Naturally we were trying to figure out when everyone was free so we could hang out. As we scratched our heads trying to coordinate 6 or so schedules (each one more scattered and hideous than the last) I made a passing comment that it probably wouldn’t be too hard to write a program that solved this problem. One of my friends suggested that we instead just write everything down on a piece of paper. Anyone who knows a computer scientist will tell you how much comments like these make us twitch. Why? Because it is our (or at least my) firm belief that any task that can be automated should be automated.
Here’s the link to the app if you want to check it out, and below is a walkthrough of the app’s functionality.
I made the homepage as simple as possible. Apps should try to guide the user where they want to go and minimize confusion.
Assuming you’re a first time user you’ll click the right button and be taken to a page where you create a group. Obvious issues: nothing to stop you from messing up your password and nothing to stop a script making tons of groups. Worst case scenario: the app exceeds the datastore write limit and nobody can make new groups for a day. Precautions I DID take: passwords are hashed (with a salt to prevent the use of a rainbow lookup tables) and html is escaped.
Now you have a group, and you want to add your schedule.
Type in your name and click and drag to fill out the table. I tried to program the click and drag functionality myself using jquery so it gets a little funny sometimes. You can click slots individually if it does and submit when you’re done.
Once you submit you’ll be taken to your group schedule page. A slot is red if at least one person is busy. If you want to plan a group activity, go for white but if you find yourself free during one of the red slots, hover over to see who else is free. You can also navigate to this page from the “View Group Schedule” button. If you go back to the main page from this one you can try it but you’ll have to refresh the page or empty all fields except for the group name and password. This is another minor bug but it’s a step up from having the entire app crash whenever one field was wrong.
And there you have it! First pet project of the semester. Check it out, play around with it and let me know what you think. More to come soon.