Although I've always wanted to add something to the Facebook Application community, I don't feel that my target audience will be found in abundance on Facebook. So I've always put most of my ideas in a notebook and tucked it back into my desk drawer.
But after reading about all the amazing stuff that went on at Startup Weekend, I thought I'd dust off my notebook and share an idea with the people out there who have the desire, time and resources to build an app. This isn't some blockbuster idea that's going to change the world, but I think it solves a problem for students and could be something fun to work on for those who are interested.
The only thing that I ask is that if you find this idea compelling and want to take it to the next level, that you share your development experiences/process with me so I can write about it here (obviously write about it on your own blog as well) :)
So here goes...
There are a ton of applications on Facebook that allow members to track the classes they're currently taking and find out who else is taking them. Then you can connect with other students, possibly friend them and message them through Facebook's existing infrastructure.
This obviously adds some value, but it definitely misses the mark on what we could be doing with an application like this. The social graph exposes a lot more than just simply connections between people, it also allows for communication and collaboration between community members as well - so we should be leveraging that within the applications themselves and not relying on Facebook's communication tools.
For instance, what happens when 2 or more students taking the same class are all having a problem with that week's homework assignment? Or what if they're in a study group but one student gets sick and can't make it? Or while they're in the study group they want to share a single source of study notes after the meeting?
What if we could build a "Courses" application that really took advantage of the communication and collaboration features found in many other applications on the web, but brought them into Facebook?
Create an application where students taking a course can join an associated group on Facebook for that course. Then within that "Course Group" they can utilize a number of collaboration utilities:
1. General White Board - I'd keep this fairly basic: no advanced formatting, basic text stylization (underlines, bolds, and italics) and allow for HTML links. No advanced permissions: basically anyone in the group can edit the write board. This will be good for keeping ongoing notes, ideas, and general assignments posted.
2. Files - This is where I'd allow students to upload any and all files related to the course they're in. This would also be a perfect place to charge for premium services (e.g. anything over 50 MB and if they want a direct URL so they can access them outside of the system and it'll cost $X per year/month).
3. Advanced White Board - This is the place where users can create multiple collaboration spaces based on the assignment they're working on. For example, if you're in the same study group for a particular class all semester, then you'll obviously be working on different projects. Here you'll be able to create a white board for each project and it'll have some advanced features.
Instead of just basic text editing you'll be allowed to import files - from the files section or linked to from 3rd party sites - add descriptions, easy PDF creation and printing, etc. A 3rd party HTML editing tool will be necessary but those are a dime a dozen now.
4. Deadlines - Simple calendar module with built in reminders and notifications (e-mail, Facebook message, Facebook notification, etc.).
5. Privacy and Preferences - The name of the game these days is privacy and control when it comes to social media applications (Case in point: See TechCrunch's piece of Facebook's new "friend grouping"). So the same must hold true for this application as well. I don't think ALL of these privacy controls need to be incorporated on the first build, but they should be included at some point in future iterations.
- Group Creator Preferences - Allow/disallow members (ie. only members can see content in this group). Group expiration - meaning, will the group die out after this class is over or should it be kept up for future collaboration and/or use by future students in this class.
- Member access - All members can/can't edit specific pieces of content, upload files, etc.
- E-mail notification - let members know about updates, new files, etc. via e-mail.
I'd host this thing on EC2 and Amazon S3 hybrid solution - all of the files could be pulled from multiple S3 instances and perform weekly/monthly backups to a physical server to ensure data is never lost. Use multiple EC2 instances to serve up the application and keep 1 physical web server to act as a load balancer and admin for the instances.
Obviously folks out there with more infrastructure experience than me will likely poke holes in this setup but I think it's a good, low-cost starting point -- especially if you slap a flash front-end on this, then an Amazon AWS solution would definitely be the way to go.
As you can see this is a mix of Facebook groups and Basecamp - in fact, it's more like Facebook groups on steroids! This is something that students will definitely find useful if it eliminates the friction found in Facebook's infrastructure and has an intuitive interface. I mean, Zuckerberg himself talks about building an app like this while he was still in school. And even if that's just PR fluff, it still illustrates the value something like this would bring to the community.
Making it go viral wouldn't be difficult at all because the application relies on invites and group collaboration for its most basic uses. That takes a lot of pressure off of thinking about marketing and will allow the developer to focus on the user and on the product.
And picture this application in the next year, 2 years or even 3 years. The data assets that will have been built from the millions of students putting up course material, study notes, papers, pictures, etc. will be a study tool in and of itself outside of Facebook.
I'd like to hear any thoughts and feedback you may have. And like I said, if you decide to go ahead with this please share your experience with developing it.