Skip to content

Latest commit

 

History

History
90 lines (84 loc) · 4.29 KB

2014-11-24.md

File metadata and controls

90 lines (84 loc) · 4.29 KB

For week of 24 November 2014

  • Ruby, Not Rails, see it at http://onebrokeb.com/ruby-not-rails
    • Reserve the domain on Black Friday
    • Get the app hosted on the domain
    • Interview Julian (or whomever) to try it out and make sure you like the questions and the way the site looks
    • Amend the process as necessary
    • Update the site as necessary
    • Publish Julian's interview.
    • Find one human to agree to an interview
    • Find another human to agree to an interview
    • Find yet another human to agree to an interview :P
    • Send the humans the email!
  • lending library
    • A plan. This is just me thinking through it, about what I'd expect the order to be. But Feel free to edit this as it changes -- or discard it in favour of your own way of working :) I probably also included more than I need to, but I feel like it goes much faster to have it broken down. Plus I wanted to think through it a bit.
      • Make the Rails App
      • Set up RSpec
      • Acceptance test (in RSpec or Cucumber or w/e) You can use the one I came up with, translating as necessary, or write your own.
      • Begin working through the acceptance test, creating things as you need them. It will probably go something like the following
      • Root route points to the BooksController#index
      • BooksController and the index method, which gets the books
      • Book model (schema we discussed is below)
      • books/index.html.erb
      • Test and logic to find how many copies of a book are available (probably it's the number of copies that have a checkout date with no checkin date)
      • BooksController#show and books/show.html.erb
      • GET /books/:id/borrow route to BooksController#borrow_form with view books/borrow_form.html.erb
      • A class that takes a book and hash of {name: "Betsy Book Borrower", phone: "555-555-5555", email: "betsy@example.com"} and creates a status for it (hmm, looks like it might need a book id, too, since we won't know the copy until you give it to them). I'd probably put this in something like app/use_cases/borrow_book.rb, your controller will ultimately delegate to it. You'll want to drive this one with unit level tests.
      • Email... uhm, I have no idea, I've never set this up :D
      • GET /statuses/:id/edit to StatusesController#edit with statuses/edit.html.erb view
      • The StatusesController is protected by basic http auth
      • PUT /statuses/:id to StatusesController#update which renders the edit view
      • Have a drink :D
    • Acceptance test inspiration (not Gherkin, but not too far off, probably implement it as Cucumber or an RSpec feature test)
      As someone from the Rails Girls DC meetup
      I'm coming to the Library to see what books I can borrow
      
      Happy path to borrowing a book:
        User goes to the website
        They see a list of all the books
        They click the title "The Little Book of Talent"
        They are on "The Little Book of Talent" show page
        they see all its information and how many books are available
        there are 2 books available
        they click the borrow button
        they are on a form with the name of the book and an explanation of the checkout process
        they fill in their name/email/phone
        they click the confirm button
        they are on a "thanks" page with some follow up info of what to expect
      
        britney receives an email with the subject "Sarah wants to borrow The Little Book of Talent"
        the body includes sarah's personal info and the book info
        and a link to the status page
        britney interacts w/ sarah and gives her the book
        britney goes to the status to include the checkout date and the copy id
        the quantity is shown to have decreased by one
      
        sarah returns the book
        britney edits the status again, this time adding the checkin date
        the quantity is shown to have increased by one
      
    • Expected models (though, things sometimes deviate once you get to implementing them)
      book
        image
        title
        description
        link for further info
        year
      
      copies
        book id
      
      statuses
        name
        phone
        email
        copy id
        checkout date
        checkin date