Behind the scenes at AllPlayers.com
We really wanted to share with you some of the cool things we’re doing behind the scenes of the AllPlayers.com site we nominated for Blue Drop Awards (vote here). But we felt that the field on the site submission was just not big enough to contain all the awesomeness. So we decided to shamelessly self promote and make it into a blog post.
We have a great development environment and process, but like with anything else we're always working to improve it. We manage our source code through git, and our configuration is always done with features and stored in code. We also make heavy use of update hooks to update the databases across environments.
Each developer has a sandbox and a fork of the main repository, and makes pull requests to it. We also have several pre-production environments that are updated frequently using Jenkins to test new features and bug fixes.
We use an Agile/Scrum process to prioritize new features and bug fixes. At the end of each sprint, we initiate a rigorous QA process where our stories are tested for integration and regression. Finally, when all the fixes are in and approved, we roll to production.
For more information about our workflow, we invite you to review our presentation from DrupalCamp Chicago.
Our goal is to make our multitude of features easy for our users. In the initial versions of our site, we focused primarily on rolling out required features. As our site has matured, we have focused more on improving usability. New features, and features that we are revamping to make more user-friendly, go through a wire-framing and comping process to ensure that usability standards are met.
We are also in the process of a site design realignment to incorporate responsive web design techniques for our users. Like other sites, we anticipate growth of mobile users and are eagerly working to be on the cutting edge of responsive design. We are using the Context Reaction: Theme module to roll out the new responsive theme gradually across our site.
We also maintain store.allplayers.com, which is connected to the main site through the bakery single sign on system. Group administrators can activate the store as a feature for their members to use. Our store site uses Drupal 7, while our main site is currently build on Drupal 6.
We also make heavy use of webforms. On AllPlayers.com, different groups have different registration requirements. We use the Webform module extensively to accommodate the needs of our users. Group administrators can access webforms to build their own custom registration forms and collect the data they need.
Travis Tidwell, Lead Developer, recently shared how AllPlayers.com leverages webforms to the Dallas Drupal Users Group.
We are currently building a public API using the wonderful Services module — it’s been a blast! We find that we can easily abstract elements of Drupal to use our API, and in turn make our site more performant and our codebase much cleaner. We have also released our iPhone app that relies solely upon our API.
We presented a session on building APIs with Drupal and the strategy around them.
OPEN SOURCE CONTRIBUTION
A core component of our process that we take very seriously is open source contribution. We maintain a strict policy that any modifications to contributed modules always go back to the issue queue as a patch. While this helps us give back to the community, it also ensures that our codebase does not deviate from that of the modules’ code.
As we go along, we are finding ourselves constantly asking new questions and building new things. After all, that’s what Drupal development is all about and why we love it. We are constantly improving our infrastructure, development process, user experience, and of course, code! We love trying new things and strive to give our knowledge back to the community that has given so much to us.