Udacity+Enterprise+Syllabus+Full+Stack+Web+Developer+nd0044
Udacity+Enterprise+Syllabus+Full+Stack+Web+Developer+nd0044
Full Stack
Web Developer
NANODEGREE SYLLABUS
Overview
REAL-WORLD PROJECTS
Learners build new skills through industry-relevant
projects and receive personalized feedback from our
network of 900+ project reviewers. Our simple user
interface makes it easy to submit projects as often as
needed and receive unlimited feedback.
KNOWLEDGE
Answers to most questions can be found with
Knowledge, our proprietary wiki. Learners can search
questions asked by others and discover in real-time
how to solve challenges.
WORKSPACES
Learners can check the output and quality of their
code by testing it on interactive workspaces that are
integrated into the classroom.
QUIZZES
Understanding concepts learned during lessons is
made simple with auto-graded quizzes. Learners can
easily go back and brush up on concepts at anytime
during the course.
PROGRESS TRACKER
Personalized milestone reminders help learners stay
on track and focused as they work to complete their
Nanodegree program.
For your first project, you’ll be building out the data models and database for an artist/venue booking
application. The fictitious startup Fy-yur is building a website that facilitates bookings between artists who
can play at venues, and venues who want to book artists.
This site:
• Lets venue managers and artists sign up, fill out their information, and list their availability for shows.
• Lets artists browse venues where they can play, and see what past/upcoming artists have been booked
at a venue.
• Lets a venue manager browse artists that would like to play in their city, and see what past/upcoming
venues where the artist has played/will be playing.
The goal of this project is to build out the data models for this booking application. A prototype design of
the web app will be provided. You’ll use SQLAlchemy and Postgresql to build out the data models upon
which this site will rely. You’ll write out both the raw SQL and SQLAlchemy commands to run for powering
the backend functionality of the website.
• Describe and explain the use cases for an Object Relational Mapping (ORM)
library.
INTRO TO
• Describe and explain the abstraction layers of SQLAlchemy.
SQLALCHEMY
AND • Connect to and manage a database using composable SQL expressions.
SQLALCHEMY • Define data model objects with Python using SQLAlchemy ORM.
ORM BASICS
• Connect data models to a lightweight Flask web application.
• Build data models using different types of data.
• Explore and retrieve data using the SQLAlchemy Model. query object.
• Create database sessions for executing database transactions.
• Execute database transactions within a connection session.
• Describe and explain the SQLAlchemy object lifecycle.
• Build a lightweight data app using SQLAlchemy.
• Describe and explain the Model-View-Controller (MVC) application
SQLALCHEMY
architecture.
ORM IN DEPTH
• Retrieve from data from a webform using Flask.
• Update data models using data migrations.
• Migrate data using Flask-Migrate and Flask-Script.
• Define and code relationships between tables and objects using
SQLAlchemy.
• Implement database methods to query relationships between data models.
BUILD A CRUD • Use the CRUD (Create, Read, Update, Delete) model to build a small
APP WITH database backed app.
SQLALCHEMY • Capture user input from a webform to add and modify data to a database.
ORM – PART 1 • Manage data using database sessions in an application controller.
In this project, you will use the skills you’ve developed to build a Trivia API. The API will allow users to:
• Search for trivia questions and answers via category and difficulty.
• Add new questions.
• Modify the difficulty rating of questions.
The goal of this project is to use APIs to control and manage a web application using existing data models.
You’ll be given a set of data models and the application front end. Your task will be to implement the API in
Flask to make the Trivia game functional.
API • Read and explore API documentation from a number of API developers.
DOCUMENTATION • Write effective documentation for your own API.
In the third project of the program, you will build the backend for a coffee shop application. You’ll add user
accounts and authentication to your application and use role-based access management strategies to
control different types of user behavior in the app. The application must:
For this project, you will use:
• Display graphics representing the ratio of ingredients in each drink.
• Allow public users to view drink names and graphics.
• Allow the shop baristas to see the recipe information.
• Allow the shop managers to create new drinks and edit existing drinks.
This project will give you a hands-on chance to practice and demonstrate your new skills, such as:
• Implementing authentication and authorization in Flask.
• Designing against key security principles.
• Implementing role-based control design patterns.
• Securing a REST API.
• Applying software system risk and compliance principles.
• Describe and explain the use cases and differences between authorization
and authentication.
• Describe the problem of security and the risks of unsecured or improperly
FOUNDATIONS secured application systems.
• Describe different types of security attack.
• Inspect requests and responses for an application using Postman.
In this project, you will create a container for your Flask web app using Docker and deploy the container to
a Kubernetes cluster using Amazon EKS. By the end of the project, you will have deployed your application
live to the world, where it should be accessible by IP address. You’ll use automated testing to prevent bad
code from being deployed and monitor your app’s performance using AWS tools.
Project Capstone
In this final capstone project, you will combine all of the new skills you’ve learned and developed in this
course to construct a database-backed web API with user access control. You will choose what app to
build and then you’ll design and build out all of the API endpoints needed for the application and properly
secure them for use in any front end application (web or mobile).
• Describe and explain the benefits and use cases for containerized environments.
• Install Docker on a local machine.
CONTAINERS • Define a container environment using a Dockerfile.
• Download and launch a Docker container.
• Store and share a docker container.
• Introduce AWS and commonly used services, S3, EC2, and IAM.
• Create AWS resources using both AWS console and AWS command-line interface
(CLI).
AWS AND • Describe and explain container orchestration, how it works, and the general use
KUBERNETES case.
• Describe and explain how Kubernetes manages container clusters.
• Creating an EKS Cluster using AWS console and Eksctl (CLI).
• Manage Kubernetes clusters using the Kubectl (CLI).