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-monitor
to be cloned in- POSIX
cd ~/path/to/directory
- Windows
cd C:\Users\user\path\to\directory
- POSIX
-
Clone and enter
web-status-monitor
git clone https://github.com/lynkos/web-status-monitor.git && cd web-status-monitor
-
Create virtual environment from
environment.yml
conda env create -f environment.yml
- Activate
monitor
(i.e., virtual environment)conda activate monitor
- Confirm
monitor
is activemonitor
should 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_file
is the path to a file containing a list of URLs)python monitor.py urls_file
- Deactivate
monitor
(i.e., virtual environment) when finishedconda deactivate