This is the curriculum for the 2018 Foxtrot Web Developer Bootcamp.

User Stories

Part 1

Story: As an un-registered guest on the website, I can go to a web page and see a list of available apartments.

Apartments have: two street designations, a city, postal code, state, and country, in a addition to a building manager's contact info, which includes: name, phone number, and hours to contact

Story: As an un-registered guest on the website, I can click on an apartment to view its details

Story: As an un-registered guest on the website, I can see a header element at the top of each page containing navigation to the other pages

IMPORTANT NOTE
Remember that your rails app needs to be an API and should use a postgres database. You can include all of these requirements in your rails new command

Hint: Only use one table in your database.
Hint: Divide the story into smaller tasks and commit to git when each task is complete.

Part 2

Story: As a un-registered guest, I can go to registration page with a form and register as a new user. Once I have registered, I should be redirected to the index view of all apartments

Story: As a logged in user, I can go to a new apartment page with a form and create a new apartment

Story: As a logged in user, I can edit the information for any apartment I have created, but I cannot edit the information for apartments that belong to someone else

Story: As a logged in user, I should be able to log out

Story: As a registered user who has not logged in, I can go to a login page

Full Stack Apartment App with Authentication

Workflow

If you don't remember how to do something -- that's ok!
This is the part of the learning process where you get to cement your knowledge of the vocabulary and concepts by trying to create an app. Look back in the curriculum to remember the processes or commands until you get comfortable with them. Write difficult processes out on sticky notes, a document on your desktop, whatever helps you remember!

Your process should look something like this:

  1. Read all the user stories and any requirements. With those in mind, begin to design your program. Try drawing out your models (what things do you need in your app?), their attributes (think about which data types), the required views, etc on a whiteboard. Try to anticipate what you can do in the setup process that will make your life easier later.
  2. Prepare your project. Create a folder containing a new rails app and react app, and initialize both as separate git repositories. Remember to commit frequently as you work.
  3. Break the first story down into its smallest tasks. Write the tests for those smaller tasks
  4. Write the code to make a test pass one task at a time -- baby steps!
  5. Commit to git every time you have something working.

Definition of Done

A story is completed when:

  • it has been tested - remember test first!
  • it has been demonstrated to an instructor
  • it has been merged onto your master branch in Github.

Getting started

We are going to set up a rails backend with Devise for authentication. See if you can correctly follow the documentation below to set up your app.

Rails API with Devise Setup Instructions

Once you are finished setting up the Rails side, create a react app in a different repository to interact with it.