0% found this document useful (0 votes)
2 views

Udacity+Enterprise+Syllabus+Full+Stack+Web+Developer+nd0044

The Full Stack Web Developer Nanodegree program aims to equip learners with skills to build database-backed APIs and web applications over an estimated duration of 4 months. The program includes 4 courses and 5 projects, covering topics such as SQL, API development, identity access management, and server deployment using Docker and Kubernetes. Graduates will be proficient in designing databases, creating web APIs, managing user authentication, and deploying applications to the cloud.

Uploaded by

beceli tiecoura
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
2 views

Udacity+Enterprise+Syllabus+Full+Stack+Web+Developer+nd0044

The Full Stack Web Developer Nanodegree program aims to equip learners with skills to build database-backed APIs and web applications over an estimated duration of 4 months. The program includes 4 courses and 5 projects, covering topics such as SQL, API development, identity access management, and server deployment using Docker and Kubernetes. Graduates will be proficient in designing databases, creating web APIs, managing user authentication, and deploying applications to the cloud.

Uploaded by

beceli tiecoura
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 17

T HE S CHO OL OF PRO GR A MMING A ND DE V ELOPMEN T

Full Stack
Web Developer

NANODEGREE SYLLABUS
Overview

Full Stack Web Developer Nanodegree Program

The goal of the Full Stack Web Program Information


Developer Nanodegree program is to
ESTIMATED TIME
equip learners with the unique skills 4 months
they need to build database-backed Study 5-10 hours/week
APIs and web applications. A graduate
LEVEL
of this program will be able to:
Practitioner
• Design and build a database for a
software application. PREREQUISITES
• Write and test software with
• Create and deploy a database-backed Python or another object-oriented
web API (Application Programming programming language.
• Query a SQL database using
Interface).
SELECT.
• Secure and manage user • Write to a SQL database using
INSERT.
authentication and access control for
• Write software for front end
an application backend. applications and websites using
• Deploy a Flask-based web application JavaScript to:
• Fetch and display data from an
to the cloud using Docker and API using AJAX or Fetch.
Kubernetes. • Organize data using JSON
(JavaScript Object Notation).
This program includes 4 courses and
5 projects. Each project you build HARDWARE/SOFTWARE
will be an opportunity to apply what REQUIRED
you’ve learned in the lessons and A computer with a broadband
internet connection. This program
demonstrate that you have gained uses Python 3.7, PostgreSQL 11,
practical full-stack development skills. SQLAlchemy, Flask 1.0, Docker and
various Python packages.

LEARN MORE ABOUT THIS


NANODEGREE
Contact us at
[email protected].

2 THE SCHOOL OF PROGR AMMING AND DEVELOPMENT


Our Classroom Experience

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.

CUSTOM STUDY PLANS


Create a custom study plan to suit your personal
needs and use this plan to keep track of your progress
toward your goal.

PROGRESS TRACKER
Personalized milestone reminders help learners stay
on track and focused as they work to complete their
Nanodegree program.

Learn More at WWW.UDACITY.COM/ENTERPRISE FULL STACK WEB DEVELOPER 3


Learn with the Best

A my Hua Caryn McCarthy


INSTRUCTOR I NS T R U C T OR
Amy has 6+ years of experience as Caryn has worked as a software
a software professional, building developer and as Coach and Experience
everything from data visualizations Manager at Code Next at Google. She is
to self-driving cars. She’s been a passionate about diversity and equity
bootcamp instructor, StartupBus in tech, is always working to create
mentor, and Girls Who Code instructor. positive impact in the tech industry and
the world.

Gabriel Ruttner Kennedy Behrman


INSTRUCTOR I NS T R U C T OR
Gabe is the CTO at Ursa & Tech Advisor Kennedy is a veteran consultant and
for Start-Ups. He has expertise in author, specializing in architecting
building cloud-based machine learning and implementing cloud solutions for
and natural language processing early-stage startups. He is experienced
services at early stage tech companies. in data engineering, data science,
He holds technical degrees from Cornell AWS solutions, and engineering
University and Stony Brook University. management.

4 THE SCHOOL OF PROGR AMMING AND DEVELOPMENT


Nanodegree Program Overview

Course 1: SQL and Data Modeling for the Web


Master relational databases with the power of SQL, and leverage Python to incorporate database logic into
your programs.

Project Design a Venue Booking Database

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.

LESSON TITLE LEARNING OUTCOMES

• Describe and explain the client-server model.


• Describe and explain the TCP/IP communication protocol.
• Describe and explain the base unit of database work: transactions.
CONNECTING AND
• Install the PostgreSQL database management system.
INTERACTING WITH
DATABASES • Create and manage Postgres databases with the psql client.
• Install the psycopg2 Python+Postgres database driver.
• Create and manage Postgres databases using the psycopg2 Python
database driver.

Learn More at WWW.UDACITY.COM/ENTERPRISE FULL STACK WEB DEVELOPER 5


Nanodegree Program Overview

Course 1: SQL and Data Modeling for the Web, cont.


LESSON TITLE LEARNING OUTCOMES

• 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.

6 THE SCHOOL OF PROGR AMMING AND DEVELOPMENT


Nanodegree Program Overview

Course 1: SQL and Data Modeling for the Web, cont.


LESSON TITLE LEARNING OUTCOMES

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.

• Modify a data schema using Flask-Migrate and Alembic.


MIGRATIONS
• Write migration scripts to update data schemas using Flask-Script.

• Update database models using webforms and application routing.

BUILD A CRUD • Delete information from a database using SQLAlchemy.


APP WITH • Model and control relationships between different types of data objects.
SQLALCHEMY • Implement one-to-many and many-to-many relationships using
ORM – PART 2 SQLAlchemy.
• Execute complex database queries on related data models.

Learn More at WWW.UDACITY.COM/ENTERPRISE FULL STACK WEB DEVELOPER 7


Nanodegree Program Overview

Course 2: API Development and Documentation


Learn how to use APIs to control and manage web applications, including best practices for API testing and
documentation.

Project Trivia API

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.

LESSON TITLE LEARNING OUTCOMES

• Describe and explain the definition and use cases of APIs.


INTRODUCTION TO • (Application Programming Interface).
APIs • Describe and explain how APIs are used to connect application front
ends to server backends.

• Describe and explain the Hypertext Transfer Protocol (HTTP).


• Describe and explain the components of an HTTP request.
• Describe and explain the different HTTP methods (verbs).
HTTP AND FLASK • Describe and explain HTTP status codes.
BASICS • Request information from a server using cURL and HTTP requests.
• Install the Python Flask micro application framework.
• Set up and Configure a Flask application.
• Create a Flask endpoint (route).

8 THE SCHOOL OF PROGR AMMING AND DEVELOPMENT


Nanodegree Program Overview

Course 2: API Development and Documentation, cont.


LESSON TITLE LEARNING OUTCOMES

• Structure and Organize API Endpoints.


• Describe and explain Cross-Origin Resource Sharing (CORS).
• Manage CORS requests using HTTP headers.
ENDPOINTS AND
• Manage CORS controls using Flask-CORS.
PAYLOADS
• Parse request path and body from an HTTP request.
• Implement HTTP POST, PATCH and DELETE methods using Flask.
• Handle application errors using Flask.

• Describe and explain the purpose and benefits of API testing.


• Test a REST API using Flask and unittest.
API TESTING
• Develop an application iteratively and safely using Test Driven
Development (TDD).

API • Read and explore API documentation from a number of API developers.
DOCUMENTATION • Write effective documentation for your own API.

Learn More at WWW.UDACITY.COM/ENTERPRISE FULL STACK WEB DEVELOPER 9


Nanodegree Program Overview

Course 3: Identity Access Management


Implement authentication and authorization in Flask and understand how to design against key security
principle. You will also gain experience with role-based control design patterns, securing a REST API, and
applying software system risk and compliance principles.

Project Identity Access Management

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.

10 THE SCHOOL OF PROGR AMMING AND DEVELOPMENT


Nanodegree Program Overview

Course 3: Identity Access Management, cont.


LESSON TITLE LEARNING OUTCOMES

• 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.

• Describe common methods for application authentication.


• Explain why passwords are not the ideal method for authentication.
AUTHENTICATION
• Implement an application authentication layer with Auth0.
• Secure API communications using JSON Web Tokens (JWT).

• Describe the risks associated with password controlled systems.


• Mitigate access risks associated with SQL injection by validating and
sanitizing database inputs.
• Secure database data in a database using standard encryption practices.
PASSWORDS • Describe how an attacker can use rainbow tables to gain access to a system.
• Improve security of hashed passwords and encrypted data using the ‘salt’
method.
• Increase application security by using best practices to avoid logging and
serializing sensitive data.

Learn More at WWW.UDACITY.COM/ENTERPRISE FULL STACK WEB DEVELOPER 11


Nanodegree Program Overview

Course 3: Identity Access Management, cont.


LESSON TITLE LEARNING OUTCOMES

• Describe the concept of authorization and access control.


• Define ‘permissions’ in the context of an application.
• Constrain permissions in an application by using role-based access control
AUTHORIZATION
(RBAC).
• Define permission roles using Auth0.
• Identify user permissions and roles from JWTs (JavaScript Web Tokens).

• Prevent accidental access to privileged information in Git repositories by


using environment variables.
• Mitigate risks to Git master branch changes by developing in feature
THINKING branches.
ADVERSARIALLY
• Employ code review as a practice to mitigate security risks.
• Test API and authentication practices with integration testing.
• Describe common types of adversarial attacks on network systems.

12 THE SCHOOL OF PROGR AMMING AND DEVELOPMENT


Nanodegree Program Overview

Course 4: Server Deployment and Containerization


Develop an understanding of containerized environments, use Docker to share and store containers, and
deploy a Docker container to AWS Elastic Kubernetes Service using the CI/CD pipeline.

Project Deploy a Flask App to Kubernetes Using EKS

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).

LESSON TITLE LEARNING OUTCOMES

• 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).

Learn More at WWW.UDACITY.COM/ENTERPRISE FULL STACK WEB DEVELOPER 13


Nanodegree Program Overview

Course 4: Server Deployment and Containerization,


cont.

LESSON TITLE LEARNING OUTCOMES

• Deploy an application to the EKS cluster


DEPLOYMENT • Use Cloudformation to create AWS resources using a YAML script.
USING CI/CD • Implement an end-to-end Continuous Integration (CI) and Continuous
Delivery (CD) pipeline using AWS CodePipeline and AWS CodeBuild services.

Learn More at WWW.UDACITY.COM/ENTERPRISE FULL STACK WEB DEVELOPER 14


Our Nanodegree Programs Include:

Pre-Assessments Dashboard & Progress Reports


Our in-depth workforce assessments Our interactive dashboard (enterprise
identify your team’s current level of management console) allows administrators
knowledge in key areas. Results are used to to manage employee onboarding, track
generate custom learning paths designed course progress, perform bulk enrollments
to equip your workforce with the most and more.
applicable skill sets.

Industry Validation & Reviews Real World Hands-on Projects


Learners’ progress and subject knowledge Through a series of rigorous, real-world
is tested and validated by industry experts projects, your employees learn and
and leaders from our advisory board. These apply new techniques, analyze results,
in-depth reviews ensure your teams have and produce actionable insights. Project
achieved competency. portfolios demonstrate learners’ growing
proficiency and subject mastery.

15 THE SCHOOL OF PROGR AMMING AND DEVELOPMENT


Our Review Process

Real-life Reviewers for Real-life Projects Vaibhav


Real-world projects are at the core of our Nanodegree programs UDACITY LEARNER
because hands-on learning is the best way to master a new skill.
Receiving relevant feedback from an industry expert is a critical part
of that learning process, and infinitely more useful than that from “I never felt overwhelmed while pursuing the
Nanodegree program due to the valuable support
peers or automated grading systems. Udacity has a network of over
of the reviewers, and now I am more confident in
900 experienced project reviewers who provide personalized and
converting my ideas to reality.”
timely feedback to help all learners succeed.
now at
All Learners Benefit From: CODING VISIONS INFOTECH

Line-by-line feedback Industry tips and Advice on additional Unlimited submissions


for coding projects best practices resources to research and feedback loops

• Go through the lessons and work on the projects that follow


How it Works
• Get help from your technical mentor, if needed
Real-world projects are
• Submit your project work
integrated within the
• Receive personalized feedback from the reviewer
classroom experience,
making for a seamless • If the submission is not satisfactory, resubmit your project
review process flow. • Continue submitting and receiving feedback from the reviewer
until you successfully complete your project

About our Project Reviewers


Our expert project reviewers are evaluated against the highest standards and graded based on learners’ progress.
Here’s how they measure up to ensure your success.

900+ 1.8M 3 4.85


/5
Expert Project Projects Reviewed Hours Average Average Reviewer
Reviewers Our reviewers have Turnaround Rating
Are hand-picked extensive experience You can resubmit your Our learners love the
to provide detailed in guiding learners project on the same quality of the feedback
feedback on your through their course day for additional they receive from our
project submissions. projects. feedback. experienced reviewers.

Learn More at WWW.UDACITY.COM/ENTERPRISE FULL STACK WEB DEVELOPER 16


Udacity © 2020

2440 W El Camino Real, #101


Mountain View, CA 94040, USA - HQ

For more information visit: www.udacity.com/enterprise


Udacity Enterprise Syllabus Full Stack 25Sept2020 ENT

You might also like