On the weekend of May 1st and 2nd of 2010 it poured rain across the southeast United States. The rain totals in some areas were over 19 inches (49 cm) and the Cumberland River crested at 51.86 feet in Nashville. The rain caused widespread flooding and damage to the city. Current damage estimates are around 2 billion dollars. The flooding is being called a 1000-year flood and one of the most expensive non-hurricane natural disasters in the United States history. On May 4th, Nashville/Davidson County was declared a Federal Disaster Area. On May 7th, 30 counties were declared major disaster areas by the federal government and 52 total submitted to receive the same status. This means roughly 31% of Tennessee is currently designated a major disaster area.
Though the city of Nashville was physically damaged, the spirit of the people was not. The local technology community quickly sprung into action to produce DonateNashville.org, a fully featured symfony 1.4 application to help organize flood relief efforts throughout the city. The project manager, Chip Hayner, took the time to answer some questions about the experience.
How quickly did the idea for the project evolve?
The idea for Donate Nashville started on May 4th, the Tuesday after the flood. Many people were talking about how they were wanting to help, but many of the infrastructures for the relief efforts hadn't been fully set up yet. That night was our regularly scheduled monthly Symfony meet-up in Nashville, and we (Brent Shaffer and I) were trying to figure out if we should cancel the meeting so people could help volunteer with relief efforts or carry on as planned. I proposed that we spend the evening donating our time and building an application that could be used as a tool to help people connect with those in need, or with those wanting to help.
After a little bit of pre-meeting planning, I spent the evening creating formal wireframes while the Symfony group began development of the full application. At the same time, we had recruited a group of people (via Twitter, etc) to help write content for the site as well as create a design. Both of those teams met at the CentreSource office, where we were holding the Symfony meet-up, so that we could all have access to each other as the project progressed.
This collaboration continued the next two nights as well -- starting right after work. Developers, designers, and content writers joined us at the CentreSource office. Most nights, people didn't leave until after 10:00.
We launched a beta version our server on Thursday night, with an "official" launch that Friday night around 6pm. Within 24 hours, we had already gotten over 1,200 visitors on the site.
What phases did you all go through?
As this was a drastically reduced timeline, most of our project came in chunks. Tuesday afternoon, Brent and I worked through the conceptual model, so that each of us could knowledgeably talk about what the application should do. By the time developers arrived, we had the database architecture and basic scaffolding for the app in place. Tuesday evening, we created wireframes and developed a logo. By Wednesday evening, most of the core development was done. Thursday morning, we got design templates, which were integrated throughout the day. Thursday night we launched beta, and Friday night we launched the site.
How many people worked on the project?
We had a total of 35 people who helped at one point or another (in all areas of the project). That roughly broke down to 11 developers (with a handful assisting with a patch here or there), 4 designers, and the rest working on content. In all, the team spent roughly 500-600 hours on this project in a four day span.
What technologies did you use?
- Ubuntu 10.04
- Apache 2.2.14
- MySQL 5.1.41
- PHP 5.3.2
- symfony 1.4
- Doctrine 1.2
- Doctrine Locatable extension
- sfDoctrineGuardPlugin
- sfFormExtraPlugin
- sfGoogleAnalyticsPlugin
- sfTaskExtraPlugin
With this project, we tried to go with simplicity. The bulk of the data only takes four data tables. While we're using the sfDoctrineGuardPlugin to handle user authentication, we don't actually have a login system -- all user logins are handled with URL hashes (modeled after Craigslist). Also, we created a more dynamic interface to allow search results to show up as you type your keywords -- with certain keywords triggering sidebar callouts.
Is the code open source?
Yes, we used github.com as it was the easiest way to have a central repository and let multiple users work on it. At this point, the source code is available, although before we can "officially" release the project as open source, we'll have to take out some of the more proprietary content that is specifically being used for Donate Nashville. As you can imagine, much of the project setup was done as easily as possibly -- without necessarily thinking through all of the ramifications.
Conclusion
First of all, big thanks to Chip for taking the time to talk to me. Some of you all may know, but Nashville is my home town. It is where I grew up and where my family lives. The flooding has destroyed thousands of homes and businesses and has affected both my family and friends. I put together a Flickr Gallery of the 2010 Nashville Flood to give you a better idea of how bad the flooding really was. If you have anything to offer and can help the recovery, please do! You can find information about how to help on the DonateNashville.org website! Thanks, Jon
Thanks Jon for a great example of how you can very quickly put up an amazing site. Excellent work by the Donate Nashville team
Awesome work. What a way for a simple Meetup to pull it together! I hope your friends and family are okay.