Welcome to the Ruby on Rails Back End Class!
Below is a quick outline of this course. Remember to keep pace with the
mentor groups, and don’t hesitate to ask lots of questions! Slack is the best place for your questions, and you have a Slack channel for the purpose. Get oriented on the Student Resources page. Sign up for mentor sessions on the Google sign-up sheet will will be sent out every Monday via Slack.
Course Calendar
The calendar below shows the start date of each week of the course and includes breaks and special events.
Course Sections
What You Will Be Learning
Rails is a widely used production grade web application framework. You will be learning to develop applications within that framework, which is based on the Ruby language. You will also learn some SQL, which is used by most back end frameworks to store and retrieve data. You will learn about
- Basic SQL operations: Select, Insert Into, Update, Delete
- Combining SQL table data using joins
- Ruby syntax, variables, conditional statements, arrays, hashes, and loops
- Ruby methods, classes, and blocks
- Ruby test driven development
- Rails simple applications using scaffolds
- The Model/View/Controller organization of functions within Rails
- Routes, and how you associate route URLs with controller methods
- REST principles and operations: GET, POST, PUT, DELETE
- Communicating with the database using the ActiveRecord Object/Relational Mapping
- How data models affect the structure of your controllers and views
- Assocations between data models: one to many, many to many.
- Views that show dynamic web pages with embedded Ruby
- Diagnosing problems and debugging
- Communicating messages to the user
- Logging
- Testing
- Styling your application using the Bootstrap framework
- How to build a back end API
- How to enable the back end API for Swagger testing/documentation
- How to call the API from Ajax
Before You Begin
Please set up your machines for Ruby and Rails development, as described Here.
Submitting Your Assignments
For each lesson, you will have one or several assignments. Each assignment is provided to you as a git repository, and a link will be provided to you for that git repository. You should have basic familiarity with git before starting this course, but if you aren’t confident in your git skills, see this Github Cookbook. For each assignment, you will do the following steps:
- Fork the repository into your own git account. The fork should be public.
- Clone your fork onto your workstation. Important: Clone your fork, not the original repository.
- Create a branch for your lesson. Commit changes to that branch periodically, and push them to github.
- When the lesson is complete and all your work has been pushed to github, open a pull request for your branch.
- Then fill out your homework assignment submission form. Include a link to your pull request. (Be sure the link is for your pull request, not your github repository.) A mentor will then review your assignment, putting comments into the pull request.
Some of the git repositories will be used for several lessons. You should create a separate branch for each lesson. Each time you will create the new branch from the branch for the previous lesson, so that your work builds on previous steps.
When Submitting Your Code
When you submit your code, it should be working. If you are not able to get your code working, ask for help on Slack, or bring up questions in a mentor session, or ask for a special mentor session.
Ruby code should be readable. There are many aspects to good Ruby code style, but the most important for right now is indentation! The content of blocks, methods, and classes should be indented two spaces. The end statement should line up, being indented the same number of spaces, with the statement that begins the block, method, or class. Here’s an example:
def my_method(my_array,my_boolean)
if my_boolean
my_array.each do |entry|
puts(entry)
end
else
puts("The boolean was false.")
end
end
We need proper indentation in order to be able to review your assignments. You need proper indentation to make sure your code is structured correctly.