Skip to content

Commit

Permalink
Merge pull request #330 from turingschool/2401_b3
Browse files Browse the repository at this point in the history
Viewing Party Solo & Rails Engine Lite updates
  • Loading branch information
jamisonordway authored Jan 17, 2024
2 parents fe73739 + 6d7bb2f commit 9e5347c
Show file tree
Hide file tree
Showing 20 changed files with 658 additions and 81 deletions.
60 changes: 34 additions & 26 deletions module3/misc/intermission_work.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ You must complete and submit all of these assignments. *It is due the Saturday b

Submit your work here: [Survey Link](https://forms.gle/SzrTxMFjYUQLbqbY8)

You must use Ruby 3.2.2 and Rails 7.0.x for all of the work in this module. You can check your version by running `ruby -v` and `rails -v` in your terminal.
You must use Ruby 3.2.2 and Rails 7.1.x for all of the work in this module. You can check your version by running `ruby -v` and `rails -v` in your terminal.

Note: If you are installing Ruby 3.2.2 for the first time, you WILL have to reinstall all of your gems. Gems reside on your computer per version of Ruby, and every time you add a new version of Ruby, you will have to reinstall all of your gems for that version of ruby.

Expand All @@ -36,18 +36,27 @@ Everything we build in Mod 3 will focus on the theme of building and consuming A

Here are some helpful videos and tutorials that you can use to familiarize yourself with both building and consuming APIs. The videos are using Rails 5, but the concepts are the same. The build an API in Rails Tutorial has been updated to use Rails 7.

#### Watch one
* [Instructor Dione Wilson demonstrates the process of building an API for 2006](https://vimeo.com/469621034/d0d5febb9d)
* [Instructor Ian Douglas demonstrates the process of building an API for 2005](https://vimeo.com/452734115/8b3bd1adf0)
To begin, familiarize yourself with the concept of an API by reading [this AWS article, _"What is an API?"_](https://aws.amazon.com/what-is/api/). For mod 3, we will focus on REST APIs.

#### Do all of these
* [Build an API in Rails Tutorial](https://github.com/turingschool/backend-curriculum-site/blob/gh-pages/module3/lessons/exercises/building_an_api.md)
* [Play with Postman in order to use the API you built out in the previous lesson.](https://learning.postman.com/docs/introduction/overview/)
* [Consuming an API](https://github.com/turingschool/backend-curriculum-site/blob/gh-pages/module3/lessons/consuming_an_api.md)
* Review your reflections on your M2 projects, and revise / add onto them.
Then, complete the following:

#### Stuff to Read and internalize
* [Sandi Metz' Rules for Developers](https://robots.thoughtbot.com/sandi-metz-rules-for-developers)
1. [Consuming an API](https://github.com/turingschool/backend-curriculum-site/blob/gh-pages/module3/lessons/consuming_an_api.md)
2. [Building an API in Rails Tutorial](https://github.com/turingschool/backend-curriculum-site/blob/gh-pages/module3/lessons/exercises/building_an_api.md)
* We recommend following along with this lesson by watching **one** of these videos:
* [Instructor Dione Wilson demonstrates the process of building an API for 2006](https://vimeo.com/469621034/d0d5febb9d)
* [Instructor Ian Douglas demonstrates the process of building an API for 2005](https://vimeo.com/452734115/8b3bd1adf0)
3. [Download & Install Postman](https://www.postman.com/downloads/). **NOTE:** do not use the web version, you will want to download it in order to use all features.
4. [Play with Postman in order to use the API you built out in the previous lesson.](https://learning.postman.com/docs/getting-started/overview/)
5. Review your reflections on your M2 projects, and revise / add onto them.

### Read / Take Notes
* [Sandi Metz's _Rules for Developers_](https://robots.thoughtbot.com/sandi-metz-rules-for-developers)

### Deeply Nested Collections

When consuming APIs, the data is often returned in deeply nested collections, so you will need to tap into your Mod 1 skills to practice digging through them to retrieve the data you need.

Fork and clone [Here Be Dragons](https://github.com/turingschool-examples/here-be-dragons). Get the tests to pass. This is something you'll turn in with your submission, so make sure you make a forked copy of it.

### Authentication / Authorization

Expand All @@ -60,21 +69,14 @@ Write up some notes and ideas on the following:
- how could we allow a user to "stay logged in for 7 days" even if your Rails app is restarted


### Deeply Nested Collections

When consuming APIs, the data is often returned in deeply nested collections, so you will need to tap into your Mod 1 skills to practice digging through them to retrieve the data you need.

Fork and clone [Here Be Dragons](https://github.com/turingschool-examples/here-be-dragons). Get the tests to pass. This is something you'll turn in with your submission, so make sure you make a forked copy of it.


### HTTP Request/Response
### HTTP Request/Response Review

* On one piece of paper, write out all of the parts of an example `HTTP GET` request (Diagram the DNS look-up as well as how a Rails Application would handle the request via MVC)
* **Even better:** write your explanation as a metaphor
* On a separate piece of paper, write out an example 200 response to that request with all of the parts
* **Bonus** write your explanation as a metaphor


### Rails "params" magic.
### Rails `"params"` magic

How does "params" get built in Rails, and what precidence is given for query parameters (ie `?id=5` in a URL) versus dynamic placeholders (ie `/book/:id`) versus data sent in the body of a request from a form.

Expand All @@ -90,19 +92,25 @@ Entering Module 3 with a solid understanding of ActiveRecord and SQL is key to g
1. Complete and understand the [Intermediate SQL II](https://gist.github.com/case-eee/5affe7fd452336cef2c88121e8d49f5d) challenges.


### Reading
---

# For further exploration

If you have time, here are some activities that will be valuable not only in Mod 3, but in Mod 4 and the job hunt as well.

### Data Structures And Algorithms

We are going to be covering various data structures to prepare you for the job hunt and technical interviews. Complete this former M1 project, [Beat Box](https://backend.turing.edu/module1/projects/beat_box)
Read: [An Overview of Data Structures for Ruby Developers](https://www.rubyguides.com/2019/04/ruby-data-structures/)

We are going to be covering various data structures to prepare you for the job hunt and technical interviews. Complete this former M1 project, [Beat Box](https://backend.turing.edu/module1/projects/beat_box).

If you've done Beat Box, let's get serious and have a [Date Night](https://backend.turing.edu/module1/projects/date_night)
If you've done Beat Box, let's get serious and have a [Date Night](https://backend.turing.edu/module1/projects/date_night)!

### Security

## Optional Reading on Security topics
* Read the docs on [Rails Security](https://guides.rubyonrails.org/security.html). We recommend focusing in particular on the sections regarding:
* Sessions
* CSRF
* User Management
* Injection

* [Rails Security](https://guides.rubyonrails.org/security.html)
8 changes: 4 additions & 4 deletions module3/projects/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,10 +3,10 @@ layout: page
title: Module 3 - Projects
---

* [Viewing Party Lite](./viewing_party_lite) - paired project, week 1
* [Market Money](./market_money/) - solo project, week 2
* [Consultancy Project](./consultancy) - group project, week 4 and 5
* [Sweater Weather](./sweater_weather) - final solo project, week 6
* paired project, week 1
* solo project, week 2
* [Consultancy Project](./consultancy) - group project, weeks 4 and 5
* final solo project, week 6


### Resources
Expand Down
24 changes: 12 additions & 12 deletions module3/projects/rails_engine_lite/evaluation.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,27 +6,27 @@ type: project
---
_[Back to Rails Engine Lite Home](./index)_

The 'eval' for this project is going to be a bit different than other projects in the past. We are relying on you to score yourself for this project. To do that, please submit [this form](https://forms.gle/1o1u5Ai2UYifwY9cA).
## Presentation
For the project evaluation, each project team should prepare a **10 minute video presentation**. Presentations longer than 10 minutes will not be reviewed and sent back for revision. Your presentation should cover the following points:

## Feedback Session Format
* Demonstration of functionality via Postman suites
* Technical quality and organization of the code, identifying code that should be refactored and how it would be refactored
* Running your application's test suite and a discussion of test coverage (happy/sad paths and any edge cases)
* Identifying the area(s) of code of which you are most proud, and an area where you would like specific feedback

Instead of a traditional eval, you will be meeting in small groups to get feedback from your peers as well as an instructor. The format of this feedback session will be:
_All_ team members are expected to participate equally in the presentation. Students should focus on practicing technical communication that is succinct and utilizes appropriate technical vocabulary.

Feedback Request:
Choose at least one part of your project that you’d like specific feedback on. Everyone will be asked to bring this to the feedback session, and you will be able to get feedback from your instructor as well as your peers in the feedback group.
Slides are not required, but encouraged as a way to facilitate the presentation along with sharing specific code examples.

## Rubric
Instructors will review the video presentation and do a brief code review (so please make sure you identify an area you’d like feedback in your video, so we can focus where you’d like it most). Scores and final comments will be sent to teams via Slack.

### Feedback Session

* Exceeds Expectations: Student comes prepared to answer all question/tasks outlined in the Feedback Session Format above. Student also participates with other peers to either ask further questions or offer additional feedback.
* Meets Expectations: Student comes prepared to answer all question/tasks outlined in the Feedback Session Format above.
* Below Expectations: Student participates in the feedback session, but does not come prepared to answer all questions/tasks outlined in the Feedback Session Format above.
* Well Below Expectations: Student is unprepared for the feedback session, and does not come prepared to participate.
## Rubric
Your project will be evaluated based on the following rubric:

### Feature Delivery

* Exceeds Expectations: Project completes all requirements and at least one extension.
* Exceeds Expectations: Project completes all requirements and at least two extensions.
* Meets Expectations: Project completes all requirements
* Below Expectations: Project fails to complete 1 - 2 required endpoints
* Well Below Expectations: Project fails to complete more than 3 or more endpoints
Expand Down
2 changes: 1 addition & 1 deletion module3/projects/rails_engine_lite/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -71,7 +71,7 @@ There are two ways to run the test suite: one endpoint at a time, or the whole s

#### Running one endpoint at a time

As you develop your endpoints, run "rails s" and find the appropriate endpoint within the Postman collection you imported. For example, "Get All Merchants". When you select "Get All Merchants" from the list, you should see a Postman tab open, pre-populated with everything you need to connect to the endpoint in your code and see if it works correctly.
As you develop your endpoints, run `rails s` and find the appropriate endpoint within the Postman collection you imported. For example, "Get All Merchants". When you select "Get All Merchants" from the list, you should see a Postman tab open, pre-populated with everything you need to connect to the endpoint in your code and see if it works correctly.

Click the "Send" button in the top right corner.

Expand Down
Loading

0 comments on commit 9e5347c

Please sign in to comment.