Building The Upcase Community


I posted in Slack but to increase my exposure for team selection I’ll post here as well.

What I can offer:

  • Full Stack Rails (CSS, HTML, Ruby)
  • EmberJS

My availability for the duration of this contest will be mostly evenings and weekends. I live in Vancouver, BC and would prefer working with people in the same timezone (PST) although it’s not a deal breaker. Open to pairing, prefer following thoughtbots guides for development projects.

Hey @christoomey,

This is great! Thanks for taking time to do this. I don’t believe I am on Upcase slack community, since I didn’t complete a lot of exercises. Would I still be able to join?

I am going to post similar to @mrlee_io

What I can offer:

Full Stack Rails (Intermediate Level)
CSS, HTML, Javascript, Ruby
I use VIm and Tmux
Strong in Design as well

I am in Central Time Zone. Like @mrlee_io, my availabilities are evenings and some weekends. I never paired before, since I work by myself mainly, so I am exited to learn from other developers. =)

Great idea, I’d like to be part of this.

Great idea and I’ll definitely be doing this. Did you all consider, however, the fact that Rails Rumble will also be occurring during this? Might be a bummer for people who we’re already planning to do Rails Rumble.

I’ll probably do both though, heh.

1 Like

Posted in Slack, but posting here and with more detail as well.

Skills I have that can help:

Front-end markup: CSS, HTML
Front-end JS: jQuery, AngularJS (also, I’m eager to begin learning React and happy to pick up some EmberJS just to play around with it again)
Backend: Ruby/Rails (mostly worked with Rails 4 and some Rails 3)
Editor: Vim

Availability: weekends and most evenings, Pacific Time (PST)

What I’m like to work with: Agreeable, self-motivated (ran a marathon), open to constructive criticism, and can express opinions tactfully. Also, I do like to win :slight_smile:

@mrlee_io - we’re in the same time zone…

Just chiming in to say this is a great initiative and I’m eager to see the results! Unfortunately, I’m very time constrained and we’ll have to sit this one out. If there ever is another “edition”, I’ll try to make room to participate.

Go forth and bring awesomeness to the Upcase community! Good luck everyone :slight_smile:

I also like the idea. I’d love to come onboard one of the teams but have the same problem as @pedrosmmoreira - not enough time I could dedicate to team work. I would enjoy just observing the progress, looking at commits and discussions as the project(s) are built.

@antwonlee sorry bout that, started grabbing names halfway down the thread! I’ve added you now to the community channel.

Per @benorenstein’s comment in the chat room, I suggest a few of the early folks act as team leads and start building teams.

1 Like

Team name: VimStars!
Members: @gxespino @antwonlee @cored

1 Like

Team Name: Chillin Astro Turtles
Members: @mrlee_io @treble37 @dstrunk

1 Like

Loving these team names.

Any chance there of there being room for one more? :slight_smile:

I have’nt been added to the Slack channel yet however.

What I can offer.

Intermediate level:

  • Ruby on Rails
  • Vanilla JS

Looking to use Ember or React with limited experience in Backbone.

Editor - Slowly weaning onto Vim, still use Sublime for most stuff however.

@ajkamel I’ve added you to the Slack channel. I think there are a few more interested folks who chimed in higher up on the thread. Maybe try reaching out to them?

Existing Teams & Potential Team Members

My excel OCD kicked in and I organized the sheet a bit. Teams are now correct, along with slack & upcase handles for everyone in a team or looking for a team.

If you are still looking for a team hit up the list on the right, some people may not have slack accounts setup yet. I’ve matched Slack and Upcase handles where possible, correct them if it’s incorrect!

Only have two more days. Start sending those personal messages.

Thanks @ajkamel for setting up the doc!


@khundawg Would you like to join my team still need two more.

Upcase Team App Project

App Setup

App Features

The app you’ll be building is inspired by GoodReads, a social network
centered around books. You’ll be building out a subset of the functionality
on the site using normal Rails techniques. The domain lends itself well to
Rails, with a number of relationships and various ways to display the data
stored in the system.

This app is mainly about the books. Books have titles, descriptions,
cover images (no need to allow file uploads, just store the URL as a string).

Books also have one author and one (or none) genre. They can be grouped into
lists, like “Best Sci-Fi” or “Books that were made into movies”. A book can be
on multiple lists.

The app should comprise of the following pages (also see the attached
wireframes for a bit more detail)

Books Page

  • View a list of all books
  • List is paginated (20 per page)
  • Filter books by Genre
  • Sortable by date

Book page

  • View a single book, seeing detail like the summary which is not on the
    books list.
  • Users who are signed in and have not already written a review can write a
    text review of the book.
  • The book page should list all reviews (with the review user’s name).

Lists Page

  • Shows all of the lists of books, like “Best Sci-Fi”, “Romance”, etc
  • Displays the list title, and 5-10 book cover images for each list

List Page

  • View an individual list
  • Displays each of the books, similar to how they are displayed on the Books

Authors Page

  • List all the authors
  • For each author, show name and sample covers of up to 5 of their books

Author Page

  • List author name, bio, etc
  • List author books, similar to display on List Page

Advanced Features

If you’re team gets through all of these challenges, then these are a few
more advanced features to try:

URL Slugs

Rather than the normal ID based urls, for instance /books/10, use “slugs”
based on the book title, for instance /books/the-martian.

Note The above example is likely insufficient as book titles are not
necessarily unique. Check out GoodReads for a pointer.

Allow Users to edit their reviews

1-5 Star Ratings w/ Review

In addition to the text review, allow users to give a book 1-5 stars. (feel
free to make this a drop down rather than fancy star widget in the form)

Display avg rating

Whenever books are displayed, show the average rating for the book based on
all the reviews

All sorting by average rating

In addition to the sort by date on the books page, allow sorting by avg

Judging Criteria

@ben and I will judge the apps based on a number of criteria, largely viewing
it as we would any client app. The thoughtbot guides are a good resource
if you are unsure how to move forward.

Some specific criteria we will be focussing on are:

  • Git history
  • Tests
    • Good feature coverage
    • Minimal duplication
  • Data model / architecture.
    • Clean separation of responsibilities for each model. DRY.
  • Clean, RESTful routing
    • On the books page, the URL should fully capture the pagination, sort, and
      filter state
  • Clean code
    • Minimal duplication
    • Expressive well named methods
    • small methods

Additional Guidelines

  • No JS - You should need little to no JavaScript to build this app. Even the
    pagination, sorting, and filtering should be done using plain HTTP
    requests and page reloads.
  • Link Everything - Everywhere you display a resource (a book, a list, an
    author, etc), make it a link to that resources page.
  • No Admin - No need to build admin functionality, instead just use the
    console to populate sample data.
  • Minimal Design - For this challenge we want to focus on the
    functionality and code, not the design. In general try to align to the
    layouts in the wireframes, but no need to sweat over fancy styling.
  • Gems are Fine - No need to rewrite the world, feel free to use gems as
    makes sense


Feel free to post any questions here and I’ll do my best to answer them and


Thanks @christoomey!

Great @christoomey!.

@ajkamel your team is already set up?

Is it too late to join? @ajkamel Are you still looking for team members?