This project is to build a web server which provides CPU usage of the hosting server and a web client which displays server CPU usage information.
Na Lou
React, Django REST framework
MIT
https://drive.google.com/file/d/1dhxJI0eXxQNsRG8YAoy3lyBMvQ4139QV/view?usp=sharing
git clone project and go to the project root dir
-
Run web server requirement: python3, Linux
- create a virtual env and activate it
- pip install -r requirements.txt
- run web server:
python manage.py makemigrations
python manage.py migrate
python manage.py createsuperuser
python manage.py runserver
server would run by default on http://127.0.0.1:8000/
-
REST API Usage:
ASSUMPTION:
Currently the requirement is to show the hosting server cpu usage, in the design, the hosting server_id is 1 by default.
REQUEST:
-
get cpu usage data by server id
http://127.0.0.1:8000/cpu/<server_id>
e.g. http://127.0.0.1:8000/cpu/1 -
get cpu usage data by server id and timestamp range
http://127.0.0.1:8000/cpu/<server_id>/<start_timestamp>/<end_timestamp>
e.g. http://127.0.0.1:8000/cpu/1/2021-11-22T00:10:46.771147Z/2021-11-22T00:11:46.826599Z
-
-
Run web client:
- npm install
- npm build
- yarn start
- check http://localhost:3000
The chart would show last 10 mins cpu usage (system usage + user usage)
python manage.py test
Migrage to Mongodb. Mongbo is a better candidate in this scenario considering data structure and scalability. Django has libraby "Django" which is consistent with Django ORM. For this project, because by default django use SQLite and it is not necessary to preinstall and setup, it would be easier to run this project locally here.