Full Stack Web
Developer

in this course, you’ll get a taste of some common production environments and tools that you will likely come across in a front end developer role. You will be building a web tool that allows users to run Natural Language Processing (NLP) on articles or blogs found on other websites.

Overview

Estimated Time

4 Months at
5-10hrs/week

Prerequisites

basic HTML, CSS,
and JavaScript

Flexible Learning

Self-paced, so you can learn on the schedule that works best for you

Technical Mentor
Support

Our knowledgeable mentors guide your learning and are focused on answering your questions, motivating you and keeping you on track

The goal of the Full Stack Web Developer program is to equip learners with the unique skills
they need to build database-backed APIs and web applications. A graduate of this program will be able to:

  • Design and build a database for a software application
  •  Create and deploy a database-backed web API (Application Programming Interface)
  • 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
    This program includes 4 courses and 5 projects. Each project you build will be an opportunity to apply what you’ve learned in the lessons and demonstrate to potential employers that you have practical
    full-stack development skills.

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

Course 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 ONE

Connecting and Interacting with Databases

  • 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
  • Install the PostgreSQL database management system
  • 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

LESSON TWO

SQLAlchemy and SQLAlchemy ORM Basics

  • Describe and explain the use cases for an Object Relational
    Mapping (ORM) library
  • Describe and explain the abstraction layers of SQLAlchemy
  • Connect to and manage a database using composable SQL
    expressions
  • Define data model objects with Python using SQLAlchemy
    ORM
  • Connect data models to a lightweight Flask web application
  • Build data models using different types of data
LESSON THREE

SQLAlchemy ORM in Depth

  • 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 architecture
  • 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
LESSON FOUR

Build a CRUD App with SQLAlchemy ORM -
Part 1

  • Use the CRUD (Create, Read, Update, Delete) model to build
    a small database backed app
  • Capture user input from a webform to add and modify data
    to a database
  • Manage data using database sessions in an application
    controller
LESSON FIVE

Migrations

  • Modify a data schema using Flask-Migrate and Alembic
  • Write migration scripts to update data schemas using Flask-
    Script
LESSON SIX

Build a CRUD App with SQLAlchemy ORM - Part 2

  • Update database models using webforms and application
    routing
  • Delete information from a database using SQLAlchemy
  • Model and control relationships between different types of
    data objects
  • Implement one-to-many and many-to-many relationships
    using SQLAlchemy
  • Execute complex database queries on related data models

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.

Course 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 ONE

Introduction to APIs

  • Describe and explain the definition and use cases of APIs
    (Application Programming Interface)
  • Describe and explain how APIs are used to connect application
    front ends to server backends
LESSON TWO

HTTP and Flask Basics

  • 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)
  • Describe and explain HTTP status codes
  • Request information from a server using cURL and HTTP
    requests
  • Install the Python Flask micro application framework
  • Set up and Configure a Flask application
  • Set up and Configure a Flask application
  • Create a Flask endpoint (route)
LESSON THREE

Endpoints and Payloads

  • Structure and Organize API Endpoints
  • Describe and explain Cross-Origin Resource Sharing (CORS)
  • Manage CORS requests using HTTP headers
  • Parse request path and body from an HTTP request
  • Implement HTTP POST, PATCH and DELETE methods using
    Flask
  • Handle application errors using Flask
LESSON FOUR

Working With Browser Events:

  • Describe and explain the purpose and benefits of API testing
  • Test a REST API using Flask and unittest
  • Develop an application iteratively and safely using Test Driven
    Development (TDD)

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.

Course 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:
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

LESSON ONE

Foundations

  • Describe and explain the use cases and differences between
    authorization and authentication
  • Describe the problem of security and the risks of unsecured
    or improperly secured application systems
  • Describe different types of security attack
  • Inspect requests and responses for an application using
    Postman
LESSON TWO

Authentication:

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

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.

Develop an understanding of how to use build tools, such as Webpack, for automating build tasks. Create CSS
variables with Sass and configure Webpack to use Sass controlled stylesheets. Learn how to cache server data
and website functionality using Service Worker.

Course Project :Front End Web Developer Nanodegree Program Capstone

In the final project, you’ll combine all of the skills you’ve developed
throughout the Nanodegree program to build an online travel app.
You’ll work with data sources from multiple APIs to create a dynamic
travel weather planning application that helps people plan trips by
generating weather forecasts for the places they’re visiting.
You’ll pull together all of the JavaScript, HTML, CSS, and build tool
skills and knowledge you’ve gained to create this application. The
design is up to you, and you’ll have the flexibility to include and
combine other APIs (even your own!) to build this final project.

LESSON ONE

Containers:

  • Describe and explain the benefits and use cases for
    containerized environments
  • Define a container environment using a Dockerfile
  • Download and launch a Docker container
  • Store and share a docker container
LESSON TWO

AWS and Kubernetes

  • Introduce AWS and commonly used services, S3, EC2, and
    IAM.
  • Create AWS resources using both AWS console and AWS
    and AWS command-line interface (CLI).
  • Describe and explain container orchestration, how it
    works, and the general use 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)
LESSON THREE

Deployment using CI/CD

  • Deploy an application to the EKS cluster
  • Use Cloudformation to create AWS resources using a YAML
    script.
  • Implement an end-to-end Continuous Integration (CI) and
    Continuous Delivery (CD) pipeline using AWS CodePipeline
    and AWS CodeBuild services.
LESSON FOUR

Final Touches:

  • Control variable and function scope with JavaScript IIFEs (Immediately Invoked Function Expressions)
  • Optimize an application build pipeline with Webpack
  • Cache server data and websites functionality using Service Worker

Our Classroom Experience

REAL-WORLD PROJECTS

Build your skills through industry-relevant projects. Get
personalized feedback from our network of 900+ project
reviewers. Our simple interface makes it easy to submit
your projects as often as you need and receive unlimited
feedback on your work.

KNOWLEDGE

Find answers to your questions with Knowledge, our
proprietary wiki. Search questions asked by other students,
connect with technical mentors, and discover in real-time
how to solve the challenges that you encounter.

WORKSPACES

See your code in action. Check the output and quality of
your code by running them on workspaces that are a part
of our classroom.

QUIZZES

Check your understanding of concepts learned in the
program by answering simple and auto-graded quizzes.
Easily go back to the lessons to brush up on concepts
anytime you get an answer wrong.

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

Stay on track to complete your Nanodegree program with
useful milestone reminders

Contact us

Get all your remaining questions answered

  • info@suncourses.com
  • +18046031690