Nanodegree key: nd0044
Version: 1.0.0
Locale: en-us
Learn how to create server-side, data-driven web applications that support any front-end and can scale to support hundreds of thousands of users.
Content
Part 01 : Welcome to the Program!
-
Module 01: Full Stack Web Developer Nanodegree Orientation
Part 02 : SQL and Data Modeling for the Web
In this part, 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.
-
Module 01: SQL and Data Modeling for the Web
-
Lesson 01: Course Introduction
Understand what this course will cover and the learning objectives achieved.
-
Lesson 02: Interacting with Databases
Interact with relational databases. Review SQL and the Client-Server Model. Use Postgres, understand DBAPIs, and use psycopg2.
- Concept 01: Lesson Overview
- Concept 02: Relational Databases
- Concept 03: Primary Keys & Foreign Keys
- Concept 04: SQL
- Concept 05: Execution Plan
- Concept 06: Client-Server Model
- Concept 07: Example: Jane's Store
- Concept 08: TCP/IP
- Concept 09: Connections and Sessions in TCP/IP
- Concept 10: Transactions
- Concept 11: Installing Postgres
- Concept 12: Postgres Command Line Applications
- Concept 13: Intro to psql
- Concept 14: Using psql - SQL Commands
- Concept 15: Using psql - Final remarks
- Concept 16: Other Postgres Clients
- Concept 17: DBAPIs and psycopg2
- Concept 18: psycopg2: basic usage
- Concept 19: psycopg2: string composition
- Concept 20: psycopg2: fetching results
- Concept 21: Recap
-
Lesson 03: SQLAlchemy Basics
Learn to use SQLAlchemy and SQLAlchemy ORM to work with a relational database in Python.
- Concept 01: Introduction
- Concept 02: Layers of Abstraction
- Concept 03: The Dialect
- Concept 04: The Connection Pool
- Concept 05: The Engine
- Concept 06: SQL Expressions
- Concept 07: SQLAlchemy ORM
- Concept 08: Mapping Between Tables and Classes
- Concept 09: Hello App with Flask-SQLAlchemy - Part 1
- Concept 10: Connecting to the Database
- Concept 11: db.Model and Defining Models
- Concept 12: Syncing Models, db.create_all()
- Concept 13: Inserting Records, Using Debug Mode
- Concept 14: Experimenting in Interactive Mode
- Concept 15: SQLAlchemy Data Types
- Concept 16: SQLAlchemy Constraints
- Concept 17: Recap
-
Lesson 04: SQLAlchemy ORM in Depth
Get to know Model.query and the SQLAlchemy Object Lifecycle to master how to query for and change records in a database.
-
Lesson 05: Build a CRUD App with SQLAlchemy - Part 1
Build out the ability to read and create todo items in our To-do app, handling changes from the database to the views.
- Concept 01: Introduction
- Concept 02: Create a Dummy ToDo App
- Concept 03: Reading ToDo items: The “R” in CRUD
- Concept 04: Model View Controller (MVC)
- Concept 05: Handling User Input
- Concept 06: Getting User Data in Flask — Part 1
- Concept 07: Getting User Data in Flask — Part 2
- Concept 08: Using AJAX to send data to flask
- Concept 09: Using sessions in controllers
- Concept 10: Recap
-
Lesson 06: Migrations
Handle changes to your database schema over time using a version control system involving migration files.
-
Lesson 07: Build a CRUD App with SQLAlchemy ORM - Part 2
Finish developing our To-Do app with update and delete functionality. Model relationships with To-Do lists.
- Concept 01: Introduction
- Concept 02: Updating a Todo Item: Part I
- Concept 03: Updating a Todo Item: Part II
- Concept 04: DELETE a Todo item - Exercise
- Concept 05: DELETE a Todo item - Solution
- Concept 06: Intro: Modeling Relationships
- Concept 07: Review: Relationships & Joins
- Concept 08: db.relationship
- Concept 09: Configuring Relationships
- Concept 10: Foreign Key Constraint Setup
- Concept 11: One-to-Many Relationship Setup
- Concept 12: Practice - Modeling Relationships
- Concept 13: CRUD on a List of To-Dos
- Concept 14: CRUD on a List of To-Dos - Part 2
- Concept 15: Many-To-Many Relationships: Part I
- Concept 16: Many-To-Many Relationships: Part II
- Concept 17: Recap
-
Lesson 08: Project: Fyyur
In this project, you'll demonstrate your new SQL and data modeling skills by creating a site to help coordinate bookings between artists and venues.
-
Part 03 : API Development and Documentation
In this part, you will use the skills you’ve developed to build a Trivia API. 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.
-
Module 01: API Development and Documentation
-
Lesson 01: Introduction to APIs
In this lesson, you'll learn what APIs are, how they're implemented, and why they're important. We'll also dive into the concepts of Internet Protocols and REST.
-
Lesson 02: HTTP and Flask Basics
In this lesson, you'll learn about HTTP—including methods, requests, responses and status codes— as well as how to set up a Flask app, and implement and test endpoints using Curl.
-
Lesson 03: Endpoints and Payloads
In this lesson, you'll learn about how Flask is extensible in itself to handle different kinds of methods, more complex endpoints, and to return formatted data to the client.
-
Lesson 04: API Testing
This lesson teaches students the benefits and purposes of testing an API, Test-Driven Development for APIs and implementing the tests using unittest.
-
Lesson 05: API Documentation
To round out the course, students will consider and write API documentation and project documentation so their projects can be hosted, shared, and used by other developers with clarity.
-
Lesson 06: Project: Trivia API
In this project, you'll use your new API and API documentation skills to build a trivia API.
-
-
Module 02: Career Services
-
Lesson 01: Take 30 Min to Improve your LinkedIn
Find your next job or connect with industry peers on LinkedIn. Ensure your profile attracts relevant leads that will grow your professional network.
- Concept 01: Get Opportunities with LinkedIn
- Concept 02: Use Your Story to Stand Out
- Concept 03: Why Use an Elevator Pitch
- Concept 04: Create Your Elevator Pitch
- Concept 05: Use Your Elevator Pitch on LinkedIn
- Concept 06: Create Your Profile With SEO In Mind
- Concept 07: Profile Essentials
- Concept 08: Work Experiences & Accomplishments
- Concept 09: Build and Strengthen Your Network
- Concept 10: Reaching Out on LinkedIn
- Concept 11: Boost Your Visibility
- Concept 12: Up Next
-
Part 04 : Identity and Access Management
In this part, 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.
-
Module 01: Identity and Access Management
-
Lesson 01: Foundation
Set the groundwork for understanding information security and refresh your understanding of the technologies used in future lessons.
-
Lesson 02: Identity and Authentication
Explore frequently used methods of identifying who is making requests on web systems. Implement modern software patterns to accomplish this goal across the stack.
- Concept 01: Lesson Intro
- Concept 02: Common Authentication Methods
- Concept 03: Alternative Authentication Methods
- Concept 04: Third-Party Auth Systems
- Concept 05: Implementing Auth0
- Concept 06: JWT - JSON Web Tokens
- Concept 07: JWT - Datastructure
- Concept 08: JWT - Validation
- Concept 09: Practice - Generating and Verifying JWTs
- Concept 10: Practice - Validating Auth0 Tokens
- Concept 11: Recap - Local Storage
- Concept 12: Storing JWTs
- Concept 13: Sending Tokens
- Concept 14: Practice - Sending Tokens
- Concept 15: Practice - Applying Skills in Flask
- Concept 16: Recap
-
Lesson 03: Passwords
Understand and overcome common pitfalls of the ubiquitous password authentication design pattern.
- Concept 01: Lesson Intro
- Concept 02: Problems with Plain Text
- Concept 03: Problems - Brute Force Attacks
- Concept 04: Practice - Brute Force
- Concept 05: Problems - Data Handling and Logging
- Concept 06: Introduction to Encryption
- Concept 07: Using Encryption for User Tables
- Concept 08: Practice - Using Cryptography
- Concept 09: Asymmetric Encryption
- Concept 10: Hashing
- Concept 11: Practice - Rainbow Tables
- Concept 12: Hashing with Salts
- Concept 13: Practice - Salted, Hashed Passwords
- Concept 14: Recap
-
Lesson 04: Access and Authorization
Limit access to specific resources or actions by restricting requests only to authorized request to particular users and groups of users. Implement role-based access controls (RBAC) across the stack.
-
Lesson 05: Thinking Adversarially
Stay one step ahead of attackers by implementing a secure development process and knowing how to keep informed on the cutting edge of security research.
-
Lesson 06: Project: Coffee Shop Full Stack
In this project, you'll demonstrate your new authentication and authorization skills by creating a full-stack application for a coffee shop menu.
-
Part 05 : Server Deployment, Containerization and Testing
In this part, 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.
-
Module 01: Server Deployment, Containerization, and Testing
-
Lesson 01: Introduction
Welcome to the Server Deployment, Containerization, and Testing course!
-
Lesson 02: Containers
An introduction to containers and Docker
-
Lesson 03: Deployment
Deploy into Kubernetes using continuous delivery
- Concept 01: Intro and Overview
- Concept 02: Kubernetes
- Concept 03: Kubernetes Concepts
- Concept 04: EKS: Kubernetes on AWS
- Concept 05: AWSCLI
- Concept 06: Installing eksctl
- Concept 07: Installing kubectl
- Concept 08: Creating an EKS Cluster
- Concept 09: CodePipeline
- Concept 10: CodeBuild
- Concept 11: Summary
-
Lesson 04: Deploy Your Flask App to Kubernetes Using EKS
Project Description - Deploy Your Flask App to Kubernetes Using EKS
Project Rubric - Deploy Your Flask App to Kubernetes Using EKS
- Concept 01: Final Project Overview
- Concept 02: Intro to the Flask App
- Concept 03: Containerizing and Running Locally
- Concept 04: Overview of the CD Pipeline
- Concept 05: Create an EKS Cluster and IAM Role
- Concept 06: Deployment to Kubernetes using CodePipeline and CodeBuild
- Concept 07: Adding Tests to the Build
- Concept 08: Outro
-
-
Module 02: Career Services
-
Lesson 01: Optimize Your GitHub Profile
Other professionals are collaborating on GitHub and growing their network. Submit your profile to ensure your profile is on par with leaders in your field.
- Concept 01: Prove Your Skills With GitHub
- Concept 02: Introduction
- Concept 03: GitHub profile important items
- Concept 04: Good GitHub repository
- Concept 05: Interview with Art - Part 1
- Concept 06: Identify fixes for example “bad” profile
- Concept 07: Quick Fixes #1
- Concept 08: Quick Fixes #2
- Concept 09: Writing READMEs with Walter
- Concept 10: Interview with Art - Part 2
- Concept 11: Commit messages best practices
- Concept 12: Reflect on your commit messages
- Concept 13: Participating in open source projects
- Concept 14: Interview with Art - Part 3
- Concept 15: Participating in open source projects 2
- Concept 16: Starring interesting repositories
- Concept 17: Next Steps
-
Part 06 : Capstone Project
You will now 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).
-
Module 01: Capstone
-
Lesson 01: Capstone Prep and Deployment
In this lesson you’ll be introduced to the Capstone project and Heroku, a new tool you’ll use to deploy your API.
-