Server Health and Empirical Real-time Latency for Online Connection Knowledge
This program is designed for California State University Stanislaus' CS-4800 2023 Fall class with Dr. Hatem. It is meant to be able to ping servers to check to see if they are up (responsive) or if they are down (unresponsive), alongisde the latency between connections. The program will ping based on a user given, or predetermined, polling rate. The status of the server, and its latency, is then saved to a database alongside a timestamp which will be used later to display a histogram of each indvidual server's statuses. This program is hostable on a local machine, yet accessible through the web assuming firewalls permit, and will require an internet conneciton to be useful. However, it is also capable of pinging device on a Local Area Network (LAN) and Wide Area Network (WAN) if the user desires.
- Christian Alameda
- Anthony Castillo
- Sierra Pangilinan
- Vel Perez-Barba
- Runs locally
- Accept user given IP addresses, domain names, and/or websites
- Stores given IP addresses in a database
- Polls those addresses every (user defiend elapsed period) and stores latency, downtime, and uptime info
- Display an uptime/downtime and/or latency histogram
- A webui for user interactions with the program
- Can trace connections to see where the connection ends if it is unable to reach its destination. (WIP)
- All aspects of the project are subject to change as the project progresses.
- client: Contains the main python file which connects all the controllers together and communicates to the server on behalf of the controllers.
- controllers: Python files which host the individual controllers for our project.
- server: Python files responsible for facilitating communication between the database and the client(s).
- static: Holds a folder of images and a folder of css files.
- templates: Holds a collection of html files that import from the static pictures and css folders.
- exampleCode: Just some exploration on how things work and give a shot to some things.
- oldFiles: Temporary Storage of old files.
- start.py: The single file which initializes the core of our project.
- IDE (Recommending VS Code)
- MongoDB Community Server
- Can be acquired here: https://www.mongodb.com/try/download/community
- Must be ran as a service (or possibly as a daemon).
- Python 3
- Flask==3.0.0
- matplotlib==3.6.3
- mpld3==0.5.9
- numpy==1.24.1
- pandas==1.5.3
- psutil==5.9.4
- pymongo==4.5.0
- python_bcrypt==0.3.2
- pytz==2022.7.1
- Requests==2.31.0
- seaborn==0.13.0
- tensorflow==2.14.0
- tensorflow_intel==2.14.0
- tzlocal==5.2
To start the program you must execute, in a terminal, the start.py file located in the root of the project. Once the program has started it will open up a website in your default browser using http://127.0.0.1:7777 as the URL. Note: You may first need to first install the necessary dependents for the script to run successfully. See the console command below.
pip install -r requirements.txt
- Username:
- Password:
- 12345