Building The Upcase Community

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!

3 Likes

@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
    page

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
rating.

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

Questions

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

3 Likes

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?

@wykhuh and @nivla we just setup our team, however you two could probably try to get another one going. Feel free to add your name top the excel sheet and modify it as needed.

Congrats for such a great idea @antwonlee !

I don’t think I can make it to this one but I’m in for the next round.

I’m adding my name on the spreadsheet.

Everyone is on the other side of the world :smile: Good luck guys

/+8 here

Hello Upcase build an app teams! Just wanted to post a quick reminder that final submissions are due this Sunday, Nov 15th. The submission should come in the form of an email to help@upcase.com with at least the following:

  • Team name and members (email address is best)
  • Link to public GitHub repo
  • Link to live application (Heroku preferred, but any live instance is fine)
  • Any instructions needed for us to be able to poke at live app.

Feel free to post here if you have any questions as we get towards the end. Ben & I will review the apps over the next week or two and share our feedback as well as select the winning team!

Small question about one of the requirements: Does “Sortable by date” mean sortable by the year the book was published, or sortable by the when it was added to the list?

Hi Andy, I was imagining sorting by the release date.

Hi people!

I recently messaged to @benorenstein about how we could have a hackathon but looks like you guys already have something like that in place and I am too late for the party :frowning:

Do you guys plan another one of these community builders ? I would really really love to join one.

Hi @novarac23, this first one is an experiment so we will wait till we complete it to decide on future projects, but it’s likely we will continue some sort of contest in the future.

3 Likes

@christoomey That’s awesome! Hopefully there we will continue to do this because its awesome :slight_smile: Excited to see who is the winner as well!

Hi guys is this upcase community still active, I would like to participate as well.

Hey, I’m just starting to try and get more involved in the upcase community and love this idea! If there is going to be another opportunity to participate in something like this, please let us know!