Skip to content

AwesomeZaidi/BEW-2.1-Advanced-Web-Patterns

 
 

Repository files navigation

BEW 2.1 - Advanced Web Patterns in Node.js

Course Description

We've learned a lot about the web; the common conventions and we've mastered authentication and authorization. Now pretty much you can sort through whatever someone asked for. However, there are a few extra features that are quite conventional that you have not gained mastery over yet. Those tricky features can stymie a novice engineer who doesn't know what tools and patterns they have available to them. For example, simple and full text search, uploading files and images, sending emails

For all in class work, you will be using a clone of the pet store starter project called Proud Pete's Pet Emporium. You must implement ALL the patterns in this class. If you miss class or do not complete the implementation in class, please do the work as homework. At the end of the class, you're pet store must be completely full featured.

Course Specifics

Weeks to Completion: 7
Total Seat Hours: 37.5 hours
Total Out-of-Class Hours: 75 hours
Total Hours: 112.5 hours
Units: 3 units
Delivery Method: Residential
Class Sessions: 14 classes, 7 labs

Prerequisites

BEW 1.1 & 1.2

Learning Objectives or Competencies (5-8)

Students by the end of the course will be able to ...

  1. Implement a Simple Search
  2. Paginate a collection
  3. Send emails
  4. Upload images to AWS S3 buckets and associate the images with a resource using s3-uploader
  5. Implement websockets for asynchronous bi-directional server-client communication using socket.io
  6. Edit existing npm modules and develop your own
  7. Compare and contrast strictly and dynamically typed implementations of JavaScript
  8. Typescript & Flow (Strict Typing)
  9. Node.js Modules Under the Hood

People's Choice

We will have 4 classes on topics that the group chooses. During these classes we will work together to survey the topic, discuss the possiblities and limitations of the technology, and get a "hello world" working on our computers. Here are a few examples of topics we could cover:

  • Sending Texts
  • async/await, turning callback => promise
  • Generators & Decorators
  • SQL
  • Monolithic, SOA, Microservices
  • Security
  • IoT
    • Control LED strip
    • Use an API like weather data
    • Talk to routers
  • Blockchain & DAPPs
  • Amazon hosting
  • ???

Software Development Trends 2018

Lessons

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

  1. Pete's Proud Pet Emporium Kick Off &
  2. Simple Search & Pagination
  3. Async/Await
  4. Upload images to S3
  5. Payment Gateways
  6. Sending Emails
  7. Intro to WebSockets - Websocket's Project Kickoff
  8. Lab Day Web Sockets
  9. How the Internet Works III
  10. TypeScript & Flow - Strict Typing in JS
  11. Project Code Review Day
  12. People's Choice 1
  13. People's Choice 2

Tutorials & Projects

  1. Proud Pete's Pet Emporium - Due end of week 2
  2. Make Chat - Due end of week 3
  3. Contractor/Custom Project - Due end of week 6
    • (you can also add these features to an old project)
    • Written in JavaScript using Node.js, Express.js, and MongoDB
    • Include at least 3 of the following features:
      • Simple Search or Full Stack Search
      • Pagination
      • Uploading Files
      • Sending Email
      • WebSockets
      • Include your own custom npm module
    • A conventional UI using Bootstrap 4
    • Pushed live to Heroku
    • AJAX requests for POST/PUT/DELETE requests - Server-side rendering for GET requests (optional)
    • Use an external API (optional)
  4. Technical Blog post—pick an interesting NPM module or BEW project (e.g. TypeScript) and write >1000 words. Post must be Persuasive, Informative, and Entertaining. - Due end of Week 6
    • The project/library's history
    • A tutorial on how to implement it
    • Its various pro's, con's and gotchas

Evaluation

To pass this course you must meet the following requirements:

  • Finish and turn in
    • Pete's Pet Emporium (GitHub & live link)
    • Make Chat (GitHub & live link)
    • One Public Project that uses 3 features above and beyond resourceful routing and auth (this can be an old project that you added these additional features to)
    • One Technical Blog Post (>1000 words)
  • More than two no-call-no-shows, or more than four excused absenses will put you at risk of academic probation

Make School Course Policies

Academic Honesty
Accomodation Policy
Diversity Statement
Evaluation Methods
Title IX Disclaimer
Program Learning Outcomes

About

Advanced Web Patterns & Recipes in JavaScript

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published