BEW1.1 - RESTful & Resourceful MVC Architecture

Course Description

This course covers the three major patterns or architectures that make the web work; REST, Resources, and MVC. Students will learn language independent patterns that are repeated across many common servers. Other key concepts covered include server-side templating, controller testing, associating and nesting resources, state, convention over configuration, and the request-response cycle.

Prerequisites

  1. Make School Prework / RAMP

Course Specifics

Course Delivery: online | 7 weeks | 14 sessions

Course Credits: 3 units | 37.5 Seat Hours | 75 Total Hours

Learning Objectives

  1. Explain the MVC architecture for web server development.
  2. Use Resourceful Routes and explain the importance of Resourceful web architecture.
  3. Read and write to a Document-Based (NoSQL) database using a Object Document Mapper (ODM)
  4. Use Web application frameworks, middleware packages, and server-side templating.
  5. Implement controller testing patterns.

Class Calendar

Class Date Topics Quiz Topic
1 Tue, Oct 22 Static Website
2 Thu, Oct 24 Git and GitHub
3 Tue, Oct 29 Intro to Flask
4 Thu, Oct 31 Flask Templating + Documentation
5 Tue, Nov 5 APIs
6 Thu, Nov 7 APIs Lab Day Quiz 1
7 Tue, Nov 12 Testing
8 Thu, Nov 14 More Testing
9 Tue, Nov 19 Document-Based Databases
10 Thu, Nov 21 Review Day Quiz 2
11 Tue, Nov 26 ERDs, Resource Associations, and MongoDB
- Thu, Nov 28 NO CLASS - Thanksgiving
12 Tue, Dec 3 RESTful APIs and Deployment Environments
13 Thu, Dec 5 Lab Day Quiz 3
14 Tue, Dec 10 Lab Day
15 Thu, Dec 12 Final Contractor Project Presentations

Assignment Schedule

All due dates are at 11:59 PM, PST on the date specified.

Assignment Date Assigned Due Date Submission Form
Homework 1 Tue, Oct 22 Mon, Oct 28 Submit Homework
Homework 2 Tue, Oct 29 Mon, Nov 4 Submit Homework
Homework 3 Thu, Nov 5 Thu, Nov 14 Submit Homework
Playlister Tutorial Tue, Nov 19 Tue, Nov 26 Submit Playlister
Contractor Project MVP Tue, Nov 26 Mon, Dec 9 Submit Contractor Project
Contractor Project Final Submission - Thu, Dec 12 Submit Contractor Project

Class Assignments

Tutorials

Tutorials are to help you get started in a topic. They are graded on completion only.

  • Playlister (must have at least 10 agile commits)

Homeworks

Homework assignments are designed to allow you to practice the skills learned in class. They are graded on completion only.

Projects

Projects are designed to allow you to explore the class topics in more depth by completing a project of your choosing.

Quizzes

There will be a total of 3 quizzes given throughout the term, each covering roughly 1/3 of the course's material. Quizzes will be allotted 30 minutes each at the beginning of class, and each quiz has an associated Study Guide.

Quiz grades will be handed back using Gradescope. Students may view their grade and prior work in preparation for the next quiz or retake. It is prohibited to share the quiz content with any other student in the course, and doing so will result in disciplinary action.

Any student scoring <70% on a quiz must retake it in order to demonstrate mastery of the concepts. Quiz retakes will be offered at specified times following the quiz (dates/times TBD), or by appointment.

Evaluation

To pass this course, students must meet the following requirements:

  • Complete all required coding tutorials:
  • Complete all required homework assignments
  • Complete all required coding projects (this includes all commit requirements and homework related to each project):
  • Submit all code and writing with rubric scores by the due dates listed above
  • Score an average of 70% on all quizzes offered
    • Quiz retakes are required for scores lower than 70%; retake score overrides previous score
  • Actively participate in class and abide by the attendance policy
  • Make up all classwork from all absences

To pass each project or tutorial, students must earn the required number of points or higher indicated on the associated rubric. Note that all points within one project or tutorial submission are fungible (that is, interchangeable) and so if one portion of work is below the "Met All Expectations" column of the rubric, another portion of work submitted can "Exceed Expectations" (generally by completing stretch challenges) to earn an extra point to make up for the missing one. Therefore, it's wise to complete stretch challenges as "insurance" in case some work does not meet expectations.

Another way to think of the submissions is a game where your goal is to earn enough points to pass in whatever way you see fit, with rubrics as the rules of the game that you can optimize against and "win" to pass the course.

The instructor or teaching assistants will review students' submissions and verify or correct their self-assessed scores, then share feedback with the student through a GitHub issue opened on their repository. Feedback will include their status on that submission (that is, whether their work is passing the rubric). Resubmissions will not be considered unless the instructor has approved a resubmission in writing due to exceptional circumstances.

Information Resources

Any additional resources you may need (online books, etc.) can be found here. You can also find additional resources through the library linked below:

Make School Course Policies