DRAFT Final Project - Your Own Web App
This project is meant to be a real-world project. The decisions you make in building it should reflect the decisions you'd make if you were doing this for hire, or for a company, or for your own product.
That said, there are a few things you must include. These are detailed below.
Your mark for the project will be based on
- how it actually works
- whether it has all the required elements (below),
- whether your code is clear, easy to read, and follows the Ruby style guidelines noted below
- Add model validations – all fields that need validations should have them (use some other than just
- Use model scopes for common queries – you should have at least one.
- Have at least two join relationships.
- Have at least one class that doesn’t inherit from ActiveRecord.
Controllers and Routing
- Make a nice homepage that sells (or nicely explains) why someone should use your app. Your homepage should draw in data from at least one model.
:onlyto limit your routes to the ones that are implemented.
- Use the
flashafter modifying data. All messages should come from your
- All data coming from users should be filtered using
- Use partials where appropriate.
- Use helpers for any view code that isn't extremely simple.
- Add CSS and HTML to make your app look nice. You can go as far as you wish with this – the only requirement is that it doesn’t just look like a mess of unstyled HTML. Use any CSS frameworks you like. Some starting points:
General – these are negotiable – we'll agree on them when we discuss your project
- Allow user sign ups and sign ins - signed in users should have access to personalized content.
- Use at least one gem that doesn’t come with Rails.
- Have at least one background job.
- Integrate with at least one external API – somewhere you either push data, or pull data, or both.
- Make your app deploy successfully to Heroku. Document the steps required in your README file.
- Don’t use
falseunless you need to.
- Use modern Ruby syntax for hashes (e.g.
key: 'value'instead of
:key => 'value') whenever possible.
- Indent your code with two spaces. Make sure your indenting is appropriate. Don't have more than one blank line between blocks of code.
- Make all your methods short and with descriptive names.
- Use options/parameter hashes for methods where it makes sense.
- Commit in git regularly (after completing each feature is usually good) with informative commit messages.
- Keep your controllers and views as simple as possible. Offload complexity to helpers or custom classes.