Code Monkey home page Code Monkey logo

bew-1.1-restful-and-resourceful-mvc-architecture's Introduction

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

bew-1.1-restful-and-resourceful-mvc-architecture's People

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.