Skip to content

Asim-Product-College/BEW-1.1-RESTful-and-Resourceful-MVC-Architecture

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

RESTful and Resourceful MVC Architecture

Course Description

The web is a very fun place to build things! There is no quicker and more readily available way to share information and enter into commerce than the internet, and there's no faster way than to build a website and web server.

In this course the goal will be to explore the three major Patterns or Architectures that make up the web and websites: REST, Resources, and MVC. These patterns are language independent and are repeated across nearly any server you work on or build.

Although you can develop webservers in many languages, we will focus on JavaScript and NodeJS. The web is becoming ever more JavaScripty. JavaScript has now risen to being, by many metrics, the fastest growing and widest used language on the web. Now with the invention of NodeJS, you can write your client and your server in JS creating interesting synergies and benefits across a stack and within a development team. Also with the emergence of tools like React Native, Ionic, Johnny-Five, and many others, JavaScript is becoming a versatile tool across many platforms even outside of the desktop and mobile web browsers.

Prerequisites

  1. Make School Prework

Learning Objectives or Competencies (5-8)

  1. Master the MVC architecture for web server development.
  2. Master and memorize Resourceful Routes and in general describe the importance of Resourceful web architecture.
  3. Read and write to a Document-Based (NoSQL) database (in this case MongoDB) using a Object Document Mapper (ODM)
  4. Master ExpressJS and extend it by installing, initializing, and using its various middleware packages including server-side templating using HandlebarsJS.
  5. Master initial controller testing patterns with Mocha.js and Chai.js

Tutorials & Projects

  • Giphy Search App tutorial. - Finish before end of week 1
  • Rotten Potatoes. Finish before end of week 2
  • Rotten Potatoes: Part Deux. Finish before beginning of week 4 (not required)
  • A Contractor Project - The instructor will roleplay being a client to your engineering team. Finish by beginning of week 7. Project requirements:
    • Written in JavaScript using Node.js, Express.js, and MongoDB
    • Written in MVC with separate files for each concern
    • CRUD >=2 Resources and associate them
    • 100% test coverage of all routes
    • A conventional UI using Bootstrap 4
    • Pushed live to Heroku
    • AJAX requests for POST/PUT/DELETE requests - Server-side rendering for GET requests (optional)
    • No jQuery :D
    • Use an external API (optional)

Evaluation

To pass this course you must meet the following requirements:

  • No more than two no call no shows
  • No more than four excused absences
  • Make up all classwork from all absences
  • Finish all required tutorials and projects
  • Pass the final exam >70% - Review topics in the study guide (file in this repo).

Lessons

13 planned lessons (7 weeks x 2 meetings per week -~1 holiday)

  1. Request-Response Cycle and MVC Architecture
  2. URLs, HTTP(S), and REST
  3. Resourceful Routing & Reading Errors
  4. Document-based Databases, Associations & Queries with Mongoose
  5. Testing RESTful Routes
  6. Lab Day
  7. The DOM, HTML, CSS, Events and Listeners
  8. Bootstrap - the Grid, Typography, Forms, and Buttons
  9. Environment Strategies, Heroku, and Deployment
  10. Lab Day
  11. RESTful APIs & Service Oriented Architecture
  12. A Brief History of JavaScript & Node.js
  13. Summative Assessment

Make School Course Policies

Academic Honesty

Accomodation Policy

Diversity Statement

Evaluation Methods

Title IX Disclaimer

Program Learning Outcomes

About

Learn the fundamentals of the web in Express.js and how to build an app in Node

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published