Raspberry Pi Full Stack
A whirlwind tour of full-stack web application development on the Raspberry Pi
Description
Course last updated in August 2022
We updated this course to be fully compatible with Raspberry Pi OS version 11 ("Bullseye"), Python 3.8.13, and updated software modules across the entire stack.
In designing this update, we chose to use the latest available software modules without breaking any part of the application or requiring modifications.
Please watch the application briefing video (one of the free lectures in this page) for more details.
-----------------------------
Welcome to Raspberry Pi: Full Stack, a hands-on project designed to teach you how to build an Internet-of-Things application based on the world’s most popular embedded computer.
This is an updated and improved remake of the original Raspberry Pi Full Stack. In this new course, I have updated all of the technologies involved in the current state of the Art, and have also added new content.
This course will expose you to the full process of developing a web application.
You will integrate LEDs, buttons and sensors with Javascript, HTML, web servers, database servers, routers and schedulers.
You will understand why the Raspberry Pi is such a versatile tinkering platform by experiencing first hand how well it combines:
open hardware, that includes wireless and wired networking and the ability to connect sensors and actuators,
the powerful Linux/Debian operating system, which gives you access to high-level programming languages and desktop-level software applications
and, the flexibility of open source development software which, literally, powers the cloud applications that you use every day
As you progress through the sections, you will learn how to complete a single step of the application development process.
You’ll start with the operating system, add Python and play with some common hardware. Then you'll set up the web application stack, and the application itself.
You will learn and add new features and refinements as you move through the lectures.
This course is perfect for people that have at least basic understanding of computers and electronics.
Ideally, you have experience in experimenting with the Arduino and are comfortable with the breadboard and simple components.
This course contains a substantial amount of programming. For this, you will need to be comfortable working with a text editor. Any prior knowledge of Python, Javascript or other high-level programming language will be beneficial, although it is not strictly necessary.
There are no requirements necessary to enrol; I only ask you to be ready to learn and willing to put the required time and effort.
Please don't forget to watch the free lectures in the first section of the course. These lectures will give you detailed information on the course content and the hardware you will need.
Looking forward to learning with you!
What You Will Learn!
- Setup the minimal Raspbian Lite operating system to the RPi.
- Learn how to work in headless mode
- Learn to install and use the a Python virtual environment.
- Install and use Flask, a Python-based web micro-framework
- Install and use uWSGI as the application server for Flask
- Install and use Nginx light-weight web server
- Setup systemd to automatically start your application
- Use the RPi GPIOs as digital input and outputs
- Use a DHT22 humidity and temperature sensor
- Install and use the SQLite database
- Use the Google Chart API to create visual representations of the sensor data
- Use JQuery to add interactivity to web pages
- Use Plotly for graphical analysis of sensor data
- Assign a static IP address to your Raspberry Pi
- Expose your application to the Internet, and access it from anywhere
Who Should Attend!
- Makers who want to experience the full process of web application development
- Any experience in programming with a high-level language is useful but not necessary
- Experience with small breadboard circuit is useful but not necessary
- Anyone who want experience working with modern web application development technologies