Calendar
The calendar below shows the start date of each week of the course, and includes breaks and special events.
Welcome to Back End II, the first class in our Back End development track.
Course Calendar
Weekly Schedule
Week 1 – Ruby on Rails Basics
Week 2 – Rails Development
Week 3 – Additional Rails Topics
Week 4 – Bringing it all together
Week 5 – Bootstrap 4 Basics; Bootstrap in Rails.
Week 6 – Building an API, Swagger, Ajax
Week 7 – Final Project 1
Week 8 – Final Project 2
Week 9 – Final Project 3
Curriculum
This is your curriculum for Back End II
3.1 Setting Up for Rails Development (you should already have done this)
3.2 Ruby on Rails 5 Basics
3.3 Rails Routes and Resources
3.4 Troubleshooting a Rails Application
3.5 Active Record Associations in Rails
3.6 Rails Validation and Error Handling
3.7 Rails Testing with Rspec see this page for some hints after reading the slides: https://learn.codethedream.org/rspec_help/
3.8 Rails Guided Project
3.9 Bootstrap 4 Basics
3.10 Bootstrap and Rails
3.11 Building an API, Swagger, Ajax
3.12 Final Project
3.13 Final Project 2
3.14 Final Project 3
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. You will learn about
- 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
Assignments
We will not use the Github Classroom for these assignments. Instead, you will be responsible for maintaining git repositories for the assignments within your own Github account. You should already, as part of your machine setup, have created a blog repository within your account. Some of the instruction will be via Treehouse videos, but for some parts we have separate slide sets.
Week 1: Maintain your blog repository to reflect all changes that the instructor shows. You created this blog repository as part of the setup of your machine for Ruby and Rails development. It is important that you continue to make changes as the instructor directs, first because otherwise you won’t remember the skills, and second because you will be evaluated on the completeness of your blog application.
Week 2: Maintain your blog repository with the additional changes shown by the instructor. In addition, you will create 3 new Rails applications, and you should have a github repository for each. How you set these these up is in the teacher’s notes, not the videos. You should have a forum application called community: https://teamtreehouse.com/library/has-and-belongs-to-many-associations , a magazine subscription application called periodical: https://teamtreehouse.com/library/has-many-through-associations , and a movie database called mdb: https://teamtreehouse.com/library/polymorphic-options These are small applications.
Week 3: Add to your blog application with the customer model and controller described in the validation and error handling slides. Add Rspec testing to your blog application as described in the slides.
Week 4 is a guided full project. Add support for the Order model, where the Customer model has a one to many association with the Order model, and where you create appropriate routes, models, migrations, and views. Your work on the Customer and Order CRUD operations and models will be evaluated at this point, so please try to do a careful job. Hint: Make sure you have Rspec tests as described in the lesson slides, and make sure all tests pass.
Week 5: Complete the Bootstrap Basics course in Treehouse. Try to do as many of the in class exercises as you can, so that you acquire the skills demonstrated by the instructor in the video. Then complete the Bootstrap for Rails homework and push to Github.
Week 6: Complete the API tutorial. Then enable it for Swagger. Then configure it to be called from an Ajax client. Then install and run the Ajax client. Finally, extend the Ajax client to retrieve all the Item records belonging to a given Todo record.
Week 7: Decide, together with your instructors and mentors, the final project you intend to do, and begin work. Be sure you review the rubric.
Week 8: More work on the final project. You are encouraged to use branches as you introduce more features, so that you don’t lose your work. You are encouraged to push your work to github frequently. Check the rubric carefully to make sure your project meets all requirements.
Week 9: The final project is due by midnight Wednesday. A form will be posted in the Backend channel for you to use in submitting your final project. A virtual meeting will be scheduled where you will present your project to the community.