Web Development 401
Getting ready for production
## About
Web Development 401 - Getting ready for production is the fourth course in the set of 4 Industry-led courses built by Pupilfirst to skill students in the area of web development:
- Web Development 101 - Getting Started with JavaScript
- Web Development 201 - Server-side programming with Node.js
- Web Development 301 - Front-end development with React and TypeScript
- Web Development 401 - Getting ready for production
## Course objective
The objective of WD401 is to allow the student to learn more about production-ready deployments.
This can be achieved either via the WD401 course material or through an internship at a company. To complete WD401 by following Pupilfirst's course material, students will need
to deploy an application of their choice that integrates learnings from earlier courses, and also work through the material of the course, integrating the new production-readiness concepts that are presented here.
The second option is for the student to gain an internship at a company where they get to work on an application that tests a similar skill-set.
## Prerequisites
Students should have completed Web Development 301, before beginning this course.
## Course outcomes
By the end of the course, the students will be able to:
- Be able to bundle a codebase with non-trivial JS dependencies and code.
- Know how to differentiate between popular JS flavours and pick one that is suitable
for a task.
- Understand why testing is important, what TDD is, and be able to write both unit
and integration tests for Rails applications that use JS in the front-end.
- Be able to set up a CI/CD pipeline for a server-side application, ensuring the code
reaches production automatically after tests pass.
- Know how to organise & communicate development work using pull requests.
- Be aware of container-based deployments, be able to build a Docker image for their
web application and then deploy that image to a web server.
- Know how to set up a web application to support localization.
- Set up error-logging for their web application to capture runtime errors - both in the
back-end and in the front-end. They'll also know how to write tests that replicate
errors before implementing a fix to prevent regressions.