Full Stack - nd0044 - Syllabus
Full Stack - nd0044 - Syllabus
Full Stack - nd0044 - Syllabus
Learning Objectives
• Secure and manage user authentication and access control for an application backend.
• Deploy a Flask-based web application to the cloud using Docker and Kubernetes.
Prerequisites
• Write and test software with Python or another • Write software for front end applications and websites
object-oriented programming language. using JavaScript to:
• Query a SQL database using SELECT. • Fetch and display data from an API using AJAX or Fetch.
• Write to a SQL database using INSERT. • Organize data using JSON (JavaScript Object Notation).
Required Hardware/Software
Learners need a computer with a broadband internet connection. This program uses Python 3.7, PostgreSQL 11, SQLAlchemy,
Flask 1.0, Docker and various Python packages.
*The length of this program is an estimation of total hours the average student may take to complete all required
coursework, including lecture and project time. If you spend about 5-10 hours per week working through the program, you
should finish within the time provided. Actual hours may vary.
Course Project
• 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. Learners will use SQLAlchemy and Postgresql to build out the data models
upon which this site will rely. They’ll write out both the raw SQL and SQLAlchemy commands to run for
powering the backend functionality of the website.
• Create and manage Postgres databases using the psycopg2 Python database
driver.
• Describe and explain the use cases for an Object Relational Mapping (ORM)
library.
• Explore and retrieve data using the SQLAlchemy Model query object.
• Define and code relationships between tables and objects using SQLAlchemy.
Build A Crud App with • Capture user input from a webform to add and modify data to a database.
SQLAlchemy ORM: Part 1
• Manage data using database sessions in an application controller.
Course Project
Trivia API
In this project, learners will use the skills they’ve developed to build a Trivia API. The API will allow users to:
• Search for trivia questions and answers via category and difficulty.
The goal of this project is to use APIs to control and manage a web application using existing data models.
Learners will be given a set of data models and the application front end. Their task will be to implement
the API in Flask to make the Trivia game functional.
• Describe and explain the definition and use cases of APIs (application
Lesson 1 programming interface).
Introduction to APIs • Describe and explain how APIs are used to connect application front ends to
server backends.
HTTP & Flask Basics • Request information from a server using cURL and HTTP requests.
API Testing • Develop an application iteratively and safely using Test Driven Development
(TDD).
Lesson 5 • Read and explore API documentation from a number of API developers.
Course Project
• Allow the shop managers to create new drinks and edit existing drinks.
This project will give them a hands-on chance to practice and demonstrate their new skills, such as:
Lesson 1 • Describe the problem of security and the risks of unsecured or improperly
secured application systems.
Foundations
• Describe different types of security attack.
Lesson 2 • Explain why passwords are not the ideal method for authentication.
• Mitigate access risks associated with SQL injection by validating and sanitizing
database inputs.
• Identify user permissions and roles from JWTs (JavaScript Web Tokens).
Lesson 5 • Mitigate risks to Git master branch changes by developing in feature branches.
Course Project
Course Project
Capstone
In this final capstone project, learners will combine all of the new skills they’ve learned and developed in this
course to construct a database-backed web API with user access control. Learners will choose what app to
build and then they’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).
• Introduce AWS and commonly used services, S3, EC2, and IAM.
• Create AWS resources using both AWS console and AWS command-line
interface (CLI).
Lesson 2 • Describe and explain container orchestration, how it works, and the general
use case.
AWS & Kubernetes
• Describe and explain how Kubernetes manages container clusters.
Deployment Using CI/CD • Implement an end-to-end Continuous Integration (CI) and Continuous
• Delivery (CD) pipeline using AWS CodePipeline and AWS CodeBuild services.
Amy Hua
Software Professional
Amy has 6+ years of experience as a software professional, building everything from data
visualizations to self-driving cars. She’s been a bootcamp instructor, StartupBus mentor, and Girls
Who Code instructor.
Caryn McCarthy
Software Developer
Caryn has worked as a software developer and as coach and experience manager for Code
Next at Google. She is passionate about diversity and equity in tech, is always working to create
positive impact in the tech industry and the world.
Gabriel Ruttner
CTO at Ursa
Gabe is the CTO at Ursa and a tech advisor for startups. He has expertise in building
cloud-based machine learning and natural language processing services at early stage tech
companies. He holds technical degrees from Cornell University and Stony Brook University.
Kennedy Behrman
Consultant & Author
Kennedy is a veteran consultant and author, specializing in architecting and implementing cloud
solutions for early-stage startups. He is experienced in data engineering, data science, AWS
solutions, and engineering management.
• Project review cycle creates a feedback loop with multiple opportunities for
improvement—until the concept is mastered.
• Project reviewers leverage industry best practices and provide pro tips.
• Unlimited access to mentors means help arrives when it’s needed most.
• 2 hr or less average question response time assures that skills development stays on track.
Empower job-readiness.
• Access to a Github portfolio review that can give you an edge by highlighting your
strengths, and demonstrating your value to employers.*
• Get help optimizing your LinkedIn and establishing your personal brand so your profile
ranks higher in searches by recruiters and hiring managers.
Mentor Network
• Mentors work across more than 30 different industries and often complete a Nanodegree
program themselves.
01.13.23 | V1.0