Intro to Full Stack Development The Building Blocks of Full Stack Web Apps

Learning objective: By the end of this lesson, students will be able to define the three components of a full stack: front-end, back-end, and the database.

Front-end

The front-end of a web application is the part that users interact with directly. It displays the user interface, handles user input, and, if necessary, communicates with a back-end via a request.

Browsers natively support HTML, CSS, and JavaScript, which are the core technologies of front-end development.

A list of common front-end technologies

Back-end

The back-end is the behind-the-scenes functionality of a web application. It processes user requests, applies business logic, and sends data back to the front-end via a response.

📚 Business logic refers to the application behavior that reflects real-world business rules. For instance, in an e-commerce app, it includes calculating shopping cart totals, applying discounts, and handling inventory.

A list of common back-end technologies

Database

The data related to an application is persisted in a database. Certain kinds of data, such as textual, numeral, and boolean data, are highly suitable to be stored in a database as they can be easily cataloged, searched for, and retrieved.

Many database technologies are available, but some of the most popular are MongoDB, PostgreSQL, Oracle, and MySQL. Each of these has strengths and weaknesses.

Two types of databases

There are two main types of databases: relational databases and non-relational databases.

Relational databases are the most traditional and common, while non-relational databases offer flexible data models for specific use cases.

How the three components work together

Communication between a client, server, and database

In a full-stack web application, the front-end, back-end, and database work together to provide a complete user experience.

Let’s bring it all together with an example.

A recipe creation website.

This example illustrates how each component plays a crucial role in the functionality of a web application, working in unison to interact with, persist, and display data.