This project develops a web status monitor (simplified version of uptimerobot.com) to practice web programming and understand the web related protocols: HTTP and TLS/SSL.
- Implements HTTP client socket to interact with the web server
- Doesn't use any existing HTTP client library
- Uses an existing SSL library to help implement the HTTPS client (extra credit)
Tip
If you have trouble deciding between Anaconda and Miniconda, please refer to the table below:
| Anaconda | Miniconda |
|---|---|
| New to conda and/or Python | Familiar with conda and/or Python |
| Not familiar with using terminal and prefer GUI | Comfortable using terminal |
| Like the convenience of having Python and 1,500+ scientific packages automatically installed at once | Want fast access to Python and the conda commands and plan to sort out the other programs later |
| Have the time and space (a few minutes and 3 GB) | Don't have the time or space to install 1,500+ packages |
| Don't want to individually install each package | Don't mind individually installing each package |
Typing out entire Conda commands can sometimes be tedious, so I wrote a shell script (conda_shortcuts.sh on GitHub Gist) to define shortcuts for commonly used Conda commands.
Example: Delete/remove a conda environment named test_env
- Shortcut command
rmenv test_env - Manually typing out the entire command
conda env remove -n test_env && rm -rf $(conda info --base)/envs/test_env
The shortcut has 80.8% fewer characters!
-
Verify that conda is installed
conda --version -
Ensure conda is up to date
conda update conda -
Enter the directory you want
web-status-monitorto be cloned in- POSIX
cd ~/path/to/directory
- Windows
cd C:\Users\user\path\to\directory
- POSIX
-
Clone and enter
web-status-monitorgit clone https://github.com/lynkos/web-status-monitor.git && cd web-status-monitor
-
Create virtual environment from
environment.ymlconda env create -f environment.yml
- Activate
monitor(i.e., virtual environment)conda activate monitor
- Confirm
monitoris activemonitorshould be in parentheses () or brackets [] before your command prompt, e.g.(monitor) $
- See which virtual environments are available and/or currently active (active environment denoted with asterisk (*))
conda info --envs
ORconda env list
- Run
monitor.py(urls_fileis the path to a file containing a list of URLs)python monitor.py urls_file
- Deactivate
monitor(i.e., virtual environment) when finishedconda deactivate