Our project is an excellent course project (top 5).
Welcome to the python programming project for SI100B. In this project, you are going to build a web crawler that runs on a Raspberry Pi (a mini-computer) to obtain real-time flight data from a website called FlightRadar24 (or an alternative called FlightAware). You are going to control LED lights on an external circuit through the GPIO interface of your Raspberry Pi according to different scenarios and visualize your data analysis through graphs or a website. To be specific, you will build:
-
A crawler to get data from a flight information website;
-
A module that controls LED lights on an external circuit;
-
A module or a website that accepts input parameters to your crawler;
-
A module for analyzing and visualizing your data through plain graphs or a website.
All your programs run on a Raspberry Pi.
The project contains four parts. Each part requires you to implement a particular functionality of the project. Generally, you have one week of time to finish one part. At the end of each week, you are required to submit your implementation (Python code), a report on how you implement this part. Also, a face-to-face check will be arranged, requiring you to explain how your implementation works to a TA.
The 4 parts are:
- Part 1: Build your web crawler [report]
- Part 2: Control the LEDs via GPIO [report]
- Part 3: Build control panel [report]
- Part 4: Perform data visualization [report]
pip3 install -r requirements.txt
Additionally, make sure that Redis
is already installed on your computer. If so, run
redis-server
on your PC to start the Redis server for all the communications in this project.
If normal, the output in the terminal should be like this:
In terminal run
python main.py --web
or
python3 main.py --web
to launch the project program.
If the response of the server is normal, enter localhost:8999
in the browser address bar, then you can see a beautifully rendered webpage like this:
You can change the arguments in the interactive interface, and see the visualized results in the Map
bar and Data Visualization
bar.