Learn to setup virtual cloud servers and develop database-driven websites using the latest web technologies.
☑ Understand the essentials of Local and Wide Area Networks
☑ Setup a basic network.
☑ Register a domain name with Domain Privacy
☑ Forward a domain, renew and administer a domain
☑ Configure Nameservers and DNS Zone Files
☑ Create and Configure a Testing server on a Local Windows or MAC System.
☑ Configure a Production web server on popular cloud hosting platforms.
☑ Create disk backups and install disk images on a virtual server
☑ Setup Ubuntu on a Virtual Machine
☑ Install and configure WAMP for Windows
☑ Install and configure MAMP for MAC
☑ Administer a remote server using PuTTY or Terminal
☑ Proficiently navigate the Linode Virtual Server Dashboard
☑ Configure Security Settings on a Virtual Ubuntu Server
☑ Scale a virtual server up and down depending on needs
☑ Install LAMP Stack (Linux, Apache, MySQL, PHP, PhpMyAdmin) on a local and remote server
☑ Setup users and access privileges on an Ubuntu server
☑ Upload files using FileZilla FTP Client
☑ Proficiently Program in HTML, CSS, JavaScript, jQuery, Bootstrap, PHP, and AJAX
☑ Create mobile responsive web applications using Bootstrap
☑ Create unique animated objects using jQuery
☑ Create and administer MySQL databases using PhpMyAdmin
☑ Create Web-based Login Authentication using PHP and MySQL
☑ Create the famous “Google Search Suggest” Feature using AJAX and PHP
☑ Create server and client side validation algorithms for web forms.
☑ Use Google Apps for Work to setup a customized business email address
This course is fully compatible with the latest versions of Ubuntu (20.04 LTS, 18.04 LTS). You can also continue using 14.04 LTS or 16.04 LTS if you prefer, as the content is compatible with all versions.
This course offers a comprehensive look into the entire web development process – from local server configuration using WAMP and MAMP (Apache, MySQL, PHP) to production deployment using the latest web technologies including: LAMP Stack (Linux, Apache, PHP and MySQL) for Ubuntu, HTML5, CSS, Bootstrap, JavaScript, jQuery, XML, and AJAX.
The content is ideal for those interested in working as a web developer, launching a web application, or devoted enthusiasts. The concepts explored in this course are suitable for individuals of all skill levels. Each module starts with the fundamental concepts and gradually transitions into more advanced material.
What makes this course unique?
This course is specifically intended to teach students to develop web applications using the most efficient methods and the latest web technologies. Through live demonstrations we teach the importance of using scalable cloud hosting infrastructures during the development process. This includes small informational websites of only a few pages to advanced ‘big data’ style, dynamic web applications. We go through several live examples of web development and Linux based server configurations on popular Cloud hosting providers such as Linode.
Section 1 & 2 (Introduction, How the Internet Works)
The course begins with with an overview of learning objectives. We then explore how the internet works, including the composition and transmission of data packets over both local and wide-area Networks. Next we take a look at the HTTP and HTTPS protocols as applicable to client and server side communications – including DNS Lookups. This section will also teach students how email exchange works over SMTP and IMAP. The role of Network Ports and Firewalls are also introduced.
Section 3, 4: (The Web Development Process, Planning a Website)
Students will gain an understanding of all the steps involved in the web development process.
Section 5: Web Hosting and System Requirements
We conduct an in-depth case analysis of web hosting solutions including: Shared, Virtual Private, Dedicated and Cloud Hosting.
We provide an overview of various packages offered by different web hosting companies and weigh the pros and cons of each one.
Students are also introduced to the importance of web server scalability and the advantages of cloud hosting over traditional hosting services. We also examine the infrastructure requirements of popular, resource intensive applications such as Netflix and Facebook to emphasize the importance of avoiding costly mistakes in the initial stages of development.
Section 6: Domain Names
We provide an overview of the domain name registration process. This includes the role of registrars and TLD (Top Level Domain) administration by ICANN. ccTLD’s (Country Code Top Level Domains) are also explored.
Students gain hands-on experience with the registration process using popular domain registrars. We provide a comparison of different registrars and register a sample domain name using GoDaddy. Other topics of discussion include: domain name privacy and administration, auto-renewal, domain forwarding, and name server assignment.
Section 7: Testing Environment
Students are introduced to configuring a local testing server on a PC or MAC system using WAMP (Windows) or MAMP (MAC). The lessons provide a detailed guide on installation of the packages and an overview of the interface.
Section 8: Production Environment
Students acquire the skills needed to optimally configure a live production environment for securely hosting web applications on a cloud server (Linode). The section starts with an overview of different cloud hosting providers such as Amazon Web Services, Microsoft Azure, Linode and Digital Ocean.
We then provide a live demonstration of server setup using Linode. This includes deployment of Ubuntu and installation of LAMP Stack (Linux) on the Linode Server using remote access consoles such as Terminal (MAC) and PuTTY for Windows.
Students gain an in-depth knowledge of server maintenance, file and directory commands. We also explore SSH Authentication for multiple users and file permissions to reduce security vulnerabilities. Remote Desktop connections for server administration are taught, using Tight VNC (Windows) and RealVNC (MAC).
A thorough overview of the Linode server management console is conducted, to show students how to scale servers, change root passwords, manage the DNS Zone file and create back-ups.
Section 9: FTP Setup
Students learn the role of an FTP (File Transfer Protocol) client to connect to a remote server, through a local machine. We provide a live demonstration on file upload using FileZilla and explore the FileZilla Interface for connection management.
Section 10: HTML Development
This section explores HTML. HTML is a key fundamental building block when learning to develop websites. Students initially learn the basics of HTML page structure and gradually transition into working with spacing, text formatting, lists, images, videos, links, anchors, tables, forms and much more. We include several projects, where students are shown first-hand, how to develop and code html web pages from scratch.
Section 11: CSS Development
Students learn to use CSS to create stylish, responsive web page layouts. We start by discussing the parts and types of CSS rules, followed by CSS classes, DIVS, and ID’s. Students gain significant exposure to various formatting options, including margins, padding, font properties, backgrounds, transparency, positioning, link styling and CSS tables. This section includes a hands-on web development project where students utilize the concepts explored in the lesson.
Section 12: Document Object Model (DOM)
As a precursor to JavaScript, we explore the DOM (Document Object Model). We explain its usage and application in manipulating HTML and CSS elements.
Section 13: JavaScript Development
We introduce students to JavaScript coding to add interactivity to static HTML and CSS pages. The section starts with discussing JavaScript placement, using both internal and external scripts. We then take a look at JavaScript output, variable declarations, arithmetic operators, objects, strings, math functions, arrays, conditional statements, loops, functions and events. Students also go through two hands-on projects that will further solidify their knowledge of the concepts explored in the lessons.
Section 14: JQuery Library
We explore the jQuery library and many of its unique features, used to create stunning, animated web pages. We start with the basics, from embedding jQuery into web pages to working with Selectors. Students then explore working with events, toggling, fading, sliding, and other forms of animation. The lessons also teach students how to work with callbacks, chaining, dragables, accordion menus and many other functions.
Section 15: Bootstrap Framework
Students are taught to use the Bootstrap framework for responsive, mobile-first – front-end development. As one of the leading open-source development libraries, Bootstrap is an essential part of the developers coding arsenal. The section begins with teaching students how to include essential Bootstrap files into web pages. It then explores the Bootstrap Grid system and popular layout strategies for optimal cross-device and cross-browser compatibility.
Students gain exposure to just about every Bootstrap component, from typography, tables and images, to jumbotrons, wells, alerts, buttons, glyphicons and progress bars. The section includes several hands-on exercises that will walk students through the process of creating stunning layouts, complete with modals, carousels, popovers, drop-down menus, forms and much more.
Section 16: PHP Development
Students gain exposure to creating dynamic web applications and functionality using PHP. We start with the basics, including variable declaration and data output. The lessons then transition into working with objects, conditional statements, loops, functions, arrays and form validation.
Section 17: MySQL Database Integration
Students learn to unleash the true power of web application development with MySQL database integration. We start with the basics from database and table creation, to user management. Next we explore the execution of commonly used SQL statements for database modification and administration. Students are also taught how to create database connections and execute SQL statements from PHP scripts.
Section 18, 19 (XML, AJAX, & Development)
We explore XML and AJAX integration to create dynamic content, without page refresh. The lessons cover several hands-on training exercises that will encompass many of the exciting functions AJAX offers. Students will build a website complete with database integration, registration forms with server-side validation, user authentication, and a SMTP-based contact submit form.
Section 20: Google Apps for Work
Students learn to create a customized business email address using Google Apps for Work. Email administration is also explored, along with alias creation.
English
Language
Introduction
Course Learning Objectives
How the Internet Works
The Internet Overview
The HTTP Protocol
The HTTPS Protocol
The SMTP Protocol and Local Mail Delivery
Outbound Mail Delivery
Network Basics – LAN and WAN
Network Ports and Firewalls
The Web Development Process
Web Development Process Overview
Planning a Website
Web Application Planning Overview
Quiz 1
Web Hosting and System Requirements
Web Hosting Packages Overview
Shared Hosting
Dedicated Hosting
VPS Hosting
Cloud Hosting and Case Study
Domain Names
Introduction to Domain Names
Domain Name Registrars
Domain Registration
Registration and Privacy Protection
Control Panel Sign-In
Auto-Renewal and Domain Lock
Domain Forwarding
Nameservers
Update Registration Information
Quiz 2
Testing Environment
Introduction to Testing Servers
Installing WampServer – WAMP
Installing MampServer – MAMP
WampServer Menu
Localhost File Test
Production Environment
Overview
Cloud Hosting Registration
Creating a Virtual Server
Linode Settings and Configuration
Deploying an Image – Ubuntu 14.04 LTS
Linode Dashboard
Remote Access
Download PuTTY and PuTTYgen – Windows
Launch Terminal – MAC
Intro to Command Console
Connecting with PuTTY – Windows
Connecting with Terminal – MAC
Maintenance Commands
File and Directory Commands
Installing LAMP Stack
Server Host Name and Date
Creating a User – Ubuntu
Ubuntu SSH Authentication – Windows
Ubuntu SSH Authentication – MAC
Web Root Permissions
Remote Dekstop Connection
Installing Tight VNC Viewer – Windows
Installing RealVNC Viewer – MAC
Ubuntu Desktop Basics
Disable Root and Password Access
Re-sizing a Linode Server
Creating Backups on Linode
Changing Root Password through Linode
Linode DNS Manager
Amending GoDaddy Name Servers
FTP Setup
FTP Client Installation
FileZilla Overview
FileZilla Uploading
FileZilla Interface Basics
Quiz 3
HTML Development
Introduction to HTML
Basic Structure of a Web Page
HTML Head Tags
HTML Body Tag
HTML Paragraph Spacing
HTML Line Breaks
HTML Non-Breaking Space
HTML Header Tags
HTML Text Formatting and Decoration
HTML Inline Text Formatting
HTML Unordered Lists
HTML Ordered Lists
HTML Image Insertion
HTML Embedding Videos
HTML Absolute vs. Relative File Referencing
HTML Link Creation
HTML Anchor Tags
HTML Tables
HTML Nested Tables
HTML Merging Cells
HTML Text Wrapping
HTML Table Background Image
HTML Table Cell Alignment
HTML – Introduction to Forms
HTML Form Tags and Attributes
HTML Forms – Post vs. Get
HTML Forms – Input Text Fields
HTML Forms – Select Menus
HTML Forms – Check Boxes and Radio Buttons
HTML Forms – Text Areas and Buttons
HTML Iframes
HTML Project – Introduction
HTML Project – Header
HTML Project – Callout
HTML Project – Image Insertion
HTML Project – Text Insertion
HTML Project – Links and Form
HTML Project – Tabular Data
HTML Project – Footer
Quiz 4
CSS Development
Introduction to CSS
Parts of a CSS Rule
Types of CSS Rules
CSS – Color Names and Codes
CSS Classes and Spans
CSS Divisions – DIVs
CSS IDs
CSS Margins
CSS Padding
CSS Text Properties
CSS Font Properties
CSS Borders
CSS Backgrounds
CSS Transparency
CSS Width and Height Properties
CSS Text on Top of Images
CSS Display Properties
CSS Static Positioning
CSS Relative Positioning
CSS Absolute Positioning
CSS Fixed Positioning
CSS Float Property
CSS Clear Property
CSS Z-Index
CSS Styling Links
CSS Tables
CSS Project – Introduction
CSS Project – CSS Rules
CSS Project – Navigation Rules
CSS Project – Responsive CSS
CSS Project – Page Elements
Quiz 5
Document Object Model (DOM)
DOM Introduction
DOM Manipulation
JavaScript Development
JavaScript – Introduction
JavaScript Placement
External JavaScript
JavaScript Output
JavaScript InnerHTML
JavaScript Commenting
JavaScript Constants
JavaScript Variables Introduction
JavaScript Assignment Operator
JavaScript Arithmetic Operations
JavaScript Arithmetic Operations Continued
JavaScript Operator Precedence
JavaScript Data Types
JavaScript Objects
JavaScript Object Output
JavaScript Strings
JavaScript String Length
JavaScript Special Characters
JavaScript Random Numbers
JavaScript Min and Max Function
JavaScript Math Round Function
JavaScript Arrays
JavaScript Array Attributes
JavaScript Arrays – Pop – Push – Shift – Unshift
JavaScript Changing and Deleting Elements
JavaScript Splicing an Array
JavaScript Sorting an Array
JavaScript Joining Arrays
JavaScript Conditional Statements
JavaScript Comparisons
JavaScript Booleans
JavaScript For Loops
JavaScript For-In Loop
JavaScript While Loops
JavaScript Do-While Loop
JavaScript Break and Continue
JavaScript Functions
JavaScript Events
JavaScript Project 1 – BG Color Changer
JavaScript Project 2 – Photo Gallery
JavaScript Project 2 – Completion
Quiz 6
jQuery Library
Introduction to jQuery
Embedding jQuery
jQuery Syntax and Selector Intro
jQuery ID Selector
jQuery Class Selector
jQuery Other Selectors
External jQuery File
jQuery Events Intro
jQuery Events – mouseenter and mouseleave
jQuery Events – mousedown and mouseup
jQuery Multiple Event Handlers
jQuery Hiding-Showing
jQuery Toggle
jQuery Fade In-Out
jQuery Fade Toggle
jQuery Fade To
jQuery Slide Down
jQuery Slide Up
jQuery Slide Toggle
jQuery Animate
jQuery Animate – Multiple Params
jQuery Animate – Relative Values
jQuery Animate – Queue Functionality
jQuery Stop Method
jQuery Callback Functions
jQuery Chaining
jQuery Draggables
jQuery Accordian Menu
jQuery Get Content – text and html
jQuery Get Content – Val
jQuery Get Content – attr
jQuery Set Content – text – html – val
jQuery Set Attributes – attr
jQuery Append and Preprend
jQuery – After and Before
jQuery Remove and Empty
jQuery Filter Remove
jQuery Add Class
jQuery Remove Class
jQuery Toggle Class
Quiz 7
Bootstrap Framework
Introduction to Bootstrap
Embedding Bootstrap
Bootstrap – Basic Page Structure
Bootstrap Grid System
Bootstrap Three Column Layouts
Bootstrap Typography
Bootstrap Tables
Bootstrap Styling Images
Bootstrap Jumbotron
Bootstrap Wells
Bootstrap Alerts
Bootstrap Buttons
Bootstrap Button Groups
Bootstrap Justified Button Groups
Bootstrap Glyphicons
Bootstrap Badges and Labels
Bootstrap Progress Bars
Bootstrap Pagination
Bootstrap Pager Pagination
Bootstrap List Groups
Bootstrap Panels
Bootstrap Dropdown Menus
Bootstrap Collapsibles
Bootstrap Collapse Panel
Bootstrap Collapse List Group
Bootstrap Accordian
Bootstrap Tab Menus
Bootstrap Pill Menus
Bootstrap Dynamic Tabs and Pills
Bootstrap Navigation Bar
Bootstrap Collapsible Navigation Bar
Bootstrap Forms – Vertical and Inline
Bootstrap Inputs
Bootstrap Form Control States
Bootstrap Input Sizing
Bootstrap Carousel
Bootstrap Modal
Bootstrap Tooltip
Bootstrap Popover
Bootstrap Scrollspy
Bootstrap Project – Themes Intro
Bootstrap Project – File Overview
Bootstrap Project – Script Overview
Bootstrap Project – Script Overview Continued
Quiz 8
PHP Development
PHP Introduction
PHP Preparation
PHP File Test
PHP Syntax
PHP Variables
PHP Variable Scope
PHP Global Keyword
PHP Static Keyword
PHP Echo vs Print
PHP Data Types
PHP Objects
PHP Strings
PHP Constants
PHP Operators
PHP Conditional Statements
PHP ElseIf Statement
PHP Switch Statement
PHP While Loops
PHP For Loops
PHP Functions
PHP Functions Continued
PHP Arrays
PHP Multidimensional Arrays
PHP Sorting Arrays
PHP Superglobal Variables
PHP Forms Introduction
PHP POST vs GET Basics
PHP Form Output and Validation
PHP Form Required Fields
PHP Validation Continued
Quiz 9
MySQL Database Integration
Introduction to MySQL Databases
Introduction PhpMyAdmin
PhpMyAdmin Interface Overview
MySQL Security and Root Superuser
MySQL Creating a Database and Table
MySQL Creating a New User
MySQL Database and Table Specific Privileges
MySQL Modifying and Deleting a Table
MySQL Modifying and Deleting a Database
Introduction to SQL
SQL Statements in PhpMyAdmin
Connect to MySQL Database using PHP
MySQL Database – Import Data
SQL Select
SQL Distinct Keyword
SQL Where Clause
SQL And Operator
SQL Or Operator
SQL Order By
MySQL Insert Into
MySQL Get Last ID
MySQL Insert Multiple Records
MySQL Prepared Statements
MySQL Delete Records
PHP Header Function
PHP Isset
MySQL Update Records
XML l AJAX
Introduction to XML
XML Basics
XML Schema
XML Parsing
XML Parsing Continued
Introduction to AJAX
AJAX – Search Suggest Tutorial
AJAX – Database Select Menu Tutorial
Quiz 10
Development Project
Development Overview
Project Setup
Index Page Overview
Home Page Mods
About Page Mods
Blog Page Mods
MySQL Database Creation
Creating a Registration Form
Registration Status using JavaScript and AJAX
PHP Validation – Encryption – Session
Login Authentication – Part 1
Login Authentication – Part 2
Login Authentication – Part 3
Login Authentication – Part 4
Logout – Terminate Session
Contact Page – Google Maps API
Contact Form – AJAX Integration
PHPMailer Installation
PHP Form Validation and Email Transmission
Production Server Migration
Google Apps for Work
Google Apps for Work – Introduction
Google Apps for Work – Registration
Google Apps for Work – Admin Console
Final Exam
Course Exam
Bonus: SSL Certificates – How to Secure your Server
Introduction to SSL Certificates
Traditional vs. Digital Certificate
Types of SSL Certificates
How SSL Certificates Work
Obtaining a SSL Certificate
Introduction to Lets Encrypt
Preparation
Domain Name Server Administration
Introduction to Digital Ocean
Droplet Configurations
Creating a Droplet
Install PuTTY-Terminal and Connect
Install LAMP Stack – Apache, MySQL, PHP
Configure DNS on Digital Ocean
Droplet Basic Configurations
Installing Lets Encrypt
SSL Certificate Status Reports
Redirect all Domain Variations to HTTPS
Auto Renewal with cron jobs