What To Expect From This Course
Get to know the deliverables of this course, who should take it, and how it is organized.
Making a web application
This course is written to simplify the path toward making interactive and data-driven applications that can run over the web. Web applications are the engines that drive the modern economy, yet they can be created by anyone with a computer and the willingness to learn.
A beginner interested in learning how to create a web application is confronted but with a dizzying array of options. It’s often unclear which of these options are alternatives and which ones can be used together (i.e., they can be stacked).
Other questions also emerge: Should you build a static site, a multi-page, or a single-page application? Do you need a database, and if so, should it be SQL or No-SQL? How do you create the client-side that runs in the browser? Do you need to manage its communication with the server somehow? How can we gain confidence that my application is working as you hoped? And, assuming all of this goes well, how do I actually put this on the internet where people can use it?
That’s a lot of questions, and internet forums are full of competing answers that hinge on technical nuance. This course avoids that debate and instead helps you make a reasonable choice and run with it. Sure, some applications would benefit from specialized approaches, such as languages, frameworks, databases, and so on, but as a beginner, it’s best to start with the general case. In other words, we just need to pick back-end and front-end frameworks and a reliable database to start learning. We’ll choose ones with good documentation and community support that will scale to satisfy almost any need, then learn how they work and how they can work together. Finally, we’ll add in some best practices, like authentication, testing, and documentation, and deploy it in the easiest way possible. These reasonable choices are made for you in this course to streamline your learning process and get you hands-on experience fast.
Who should take this course?
This course is for anyone who wants to learn how to build a complete web application from front to back but wants to avoid the endless debates about product X versus product Y. This course is not only for inventors and entrepreneurs but also for the people who want to focus on the applications instead of arguing over which tools are the coolest.
In addition to the makers, this course is also for people interested in getting into web application development as a career or serious hobby, but don’t know where to focus. Rather than choosing one of the typical specialties, such as back-end, front-end, user experience, database admin, why not get a taste of each one? Only then will you be sufficiently informed to know whether you want to specialize and in what.
There is a unique pleasure in the self-reliance of being a full-stack web developer. You can take an idea and turn it into reality by yourself. This also means you are well-positioned to know how to get and use help if needed because you better understand each of the roles involved. This broader perspective is one reason why starting with full-stack web development is a great idea. From there, you can specialize in one part of the technology stack, expand out and learn alternative technologies, become a product manager, or tackle your ambitious projects. The material in this course will open many doors.
Familiarity with Python and JavaScript will be beneficial since we’ll be writing code in those two languages. However, you’ll only need a basic understanding, and you can potentially learn this along the way if you’re currently unfamiliar.
The technology stack choice followed here is based on the Flask (Python) framework, the React (JavaScript or JSX) framework, and the PostgreSQL database used through the SQLAlchemy package (in Python). These are excellent choices because they are powerful, easy-to-use, scalable, and popular.
If you enjoy learning broadly applicable things, this course is for you. It will help you have more exciting hobby projects, get hired, or build your start-up idea into a minimum viable product.
How this course is organized
This course is organized to take you from being a complete web development beginner to building a web application on your own. To do this, we’ll start with the basic pieces and then build up.
This course follows the app development process from start to finish, with a little bit of generally practical professional skills regarding documentation and testing. Even when working alone, these methods are essential to help us keep track of what our code does, as it continues to grow and gain confidence that it is working correctly.
Example website and code
A typical example used in tutorials on REST API creation and web application development is a to-do list, where the user can store and check off items from a list. This example is sufficient to show how REST APIs work, but doesn’t delve into how its components work. This course instead builds a variation of the children’s game of Hangman, where a player attempts to guess a missing word. We’ve altered it by allowing a language choice and providing a context sentence in that language taken from a well-known novel.
Try it yourself
- Click the “Run” button to start the execution of the backend server.
- To launch the frontend, open a new terminal by clicking “+” and execute the following commands in it.
cd langman/clientexport PORT=5000npm start
- Open the “Output” tab, enter your name and click on “Start a game”.