Description
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.
Who this course is for:
No prerequisite knowledge required
Students interested in a career in web development
Students interesting in starting a web based business
Students who want to transition from basic shared, vps or dedicated hosting packages to sophisticated cloud hosting solutions
Students wanting to update or learn new programming skills using the latest web scripting languages
Web Development enthusiasts