Please use the first 15 minutes of afternoon class to fill out this checkpoint
Enter your full name and the passcode: iXperience2015
Thanks!
Turn in your project the same way you turned in Lekker Plekke and the weekend homework. Create the app in your iXperience folder (not inside of session0202_exercises) and initialize a new git repository. Connect your local repo to a new GitHub repo and push your code. When your app is complete, share the link via Piazza.
How many rands have you spent while in Cape Town?
If you answered "I have no idea." then today's app is for you! We will be building an app that will keep track of your spending.
You must use the Devise gem to implement user authentication into your app. Checkout this awesome tutorial for guidance.
Your app will have two models: User and Cost, where a user will have many costs. Remember, part of the Devise installation process involves creating a User model, you will need to add the association afterwards!
Think about what attributes you need for costs: you will at least want to keep track of the name of the thing you bought and the price. What other info might be important? (See bonus #4 for image uploads)
At minimum, you app must include views for logging in, creating/editing a new cost, showing a single cost, and displaying all of a user's costs. Your app will need the above functionality, as well as the ability to delete a cost.
Hint: To generate devise views for editing, use the following command in your terminal: rails generate devise:views users
Make your user's spending reports private, implement authorization (either manually using conditionals or with the Pundit gem, checkout these slides or this article for some guidance)
Implement facebook authentication using the OmniAuth-facebook gem. Checkout this helpful demo app for guidance (the instructions are in the README). Want to use both Devise and OmniAuth? Do bonus #3 instead.
Implement both Devise and Omniauth simultaneously. Checkout either of these tubular tutorials: Devise Wiki or William Leeper's Slide Share.
Add file upload capabilities to your app (this will allow your user to upload an image with their spending report). You can use the Paperclip gem.
Upgrade your forms with the Simple Form gem
Style your app with Bootstrap. See the bottom of yesterday's notes for a quick setup tutorial.