Spree Commerce

Try It Now

RailsGirls Summer of Code: Team BrowserSpree

Posted on September 26, 2014 by Jam Black and Britney Wright

About Team BrowserSpree

Team BrowserSpree is one of the 10 sponsored teams selected in this summer’s Rails Girls Summer of Code, and has had a pretty busy summer. Based in Washington, DC, teammates Jam Black and Britney Wright, along with their coaches, Patrick Peak and Tanya Bodanya, set a goal of integrating BrowserCMS, a Rails content management system and Spree into a gem–- BrowserSpree.

Summer of Code

Setting a goal of combing two separate Rails engines is by far no easy task–- especially for newbies, so to make things easier we broke our goals into milestones:

1. Orientation into BrowserCMS
2. Build a storefront using only BroswerCMS content types
3. Update “Getting Started” and “Content Blocks” documentation (based on experience)
4. Orientation into Spree Commerce
5. Add store features using Spree
6. Build a Spree Module
7. Build a BrowserSpree site

In July, we dove into BCMS using content blocks and portlets to build our own bookstore for our clients (in this case, our coaches). We knew that eventually, we would just look to Spree to perform many of the features below, but this was a good way to gain familiarity with BCMS. The functions we built included:

• Catalog all of the books that our visitors can browse
• View product pages individually
• Categorize by type of book (authors, fiction/nonfiction, politics, economics, young reader, vampire novels, etc.)
• Give authors their own pages that list their work
• Make authors’ other works visible even if we don’t have those books for sale
• When viewing a book, customers should be able to see all the author’s other books for sale
• When viewing a product, buyers should be able to see other related products

In August we received opportunity scholarships to attend Steel City Ruby where we gave our first lightning talk. We also participated in the first ever Ruby for Good, where we worked on BCMS 4.0 Beta documentation. In August, we also dove into Spree, and soon realized since Spree is an ecommerce platform, a lot of the features we built within BCMS in July were automatically included. So we moved onto the next hurdle— installing both gems in the same Rails app so we could see how these engines play together.

Along the way, we learned some helpful tips:

Google, Google, Google

This can’t be said enough. Not only when it comes to errors, but also when you have a feature you are trying to add, or a “how do I go about doing ‘x’ question.” It was surprising how much we found out just by using others people’s questions. Plus, Googling is a required skill to be a developer–- right under using Git or knowing the command line. And you would be shocked by how much even the most experienced developers rely on Google.

It’s okay to go over the basics

It’s hard to write a novel when you can’t first write a sentence. For one or two weeks, we had to cover some Rails basics— in addition to building our store so we could ensure we learned and applied the fundamentals of Rails and not just BCMS-isms.

Pseudo code

Pseudo code is writing in English what you are trying to accomplish in code. It helps to logically map out the steps to get to your desired outcome.

Break large tasks into smaller ones

Start small. When we added a feature, it seemed daunting and oftentimes felt like we had no idea where to start. Breaking one big action into smaller ones was key because it allowed us to start with what we did know–- and take it step-by-step from there.

Where to From Here?

As the last week of Rails Girls Summer of Code wraps up, we are putting the finishing touches on our gem and drafting documentation. Check back for our follow-up post to see how we crossed the hurdles of resolving gem dependencies, deciding what features to include in our gem and, finally, release the alpha version of BrowserSpree! To view this piece in its original format, visit our blog at Rails Girls Summer of Code.

Follow Spree Commerce!