You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: README.md
+26-3Lines changed: 26 additions & 3 deletions
Original file line number
Diff line number
Diff line change
@@ -14,7 +14,7 @@
14
14
It contains a React-based summarizer built with ChatGPT whose primary purpose of the application is to generate a summary of paragraphs with highlighting of the relevant keywords. It aims to facilitate the comprehension of the original text and to enhance user trust in the generated summary.
-**Gevent**: it will allow web application to scale to potentially thousands of concurrent requests on a single process. It mainly replaces blocking parts with compatible cooperative counterparts from gevent package by "monkey patching". It uses epoll or kqueue or libevent for highly scalable non-blocking I/O.
28
28
-**Celery**: Celery is a powerful and robust distributed task queue system that enables asynchronous task execution, scheduling, and distributed work processing. Celery supports distributing tasks across multiple workers, allowing applications to scale horizontally by adding more Celery workers as needed.
29
29
-**Redis**: Redis provides a fast, lightweight, and efficient message queue system, making it suitable for handling large volumes of tasks and ensuring reliable task delivery.
30
+
-**MongoDB**: Using MongoDB as the backend along with Redis as the message broker for Celery can provide a powerful and scalable solution for asynchronous task processing in web applications. While Redis is an excellent message broker, it is not designed for persistent storage of complex data structures like task results. MongoDB, on the other hand, provides a durable and scalable solution for storing task results, metadata, and other related information.
30
31
-**Nginx**: NGINX is well known as a high‑performance load balancer, cache, and web server. It is often preferred over Linux Virtual Server (LVS) for load balancing and reverse proxying. It is a full-featured web server and reverse proxy, providing a complete solution with built-in load balancing, caching, access control, and other features. LVS, on the other hand, is primarily focused on load balancing and requires additional components for other functionalities.
32
+
-**JMeter**: JMeter is a popular open-source tool used for load testing and performance testing of web applications, among other types of applications. JMeter generates detailed reports and graphs that help analyze the test results, including response times, throughput, and resource utilization. This information is valuable for identifying bottlenecks and optimizing the application's performance.
31
33
32
34
---
33
35
@@ -82,10 +84,30 @@ You can start the broker to make the web appliaction more scalable with the comm
82
84
The detailed configuration is under `backend/celeryconfig.py`
83
85
84
86
85
-
#### Load Balance: Nginx (to-do)
87
+
#### Load Balance: Nginx (TO-DO)
86
88
Please see the configuration in `nginx.conf`. Run with
87
89
-`nginx -g daemon off`
88
90
91
+
**Comment**: Currently, I am not familiar with the high-level Nginx operations.
92
+
93
+
94
+
#### JMeter (Simple test: TO-DO)
95
+
- See the files under `jmeter-tests`. In the figure below, Docker Desktop plug-in `qainsights/jmeter` with JMeter is used. In the test, I set the test with `time.sleep(2)` to complete the work.
**Comment**: Currently, I am trying to understand the concepts. Here is a just simple test demo.
110
+
89
111
90
112
#### Development with Docker
91
113
Docker is a good tool to deploy applications in different platforms. Here you can see we have `Dockerfile` in both `frontend/` and `backend/` folders and `docker-compose.yaml` in the directory. So, you can directly use the command `docker-compose -d up` with `docker` installed in your computer. I would recommend you to use Docker Desktop which can inspect the containers with GUI shown below.
@@ -96,14 +118,15 @@ Docker is a good tool to deploy applications in different platforms. Here you ca
96
118
<img src="examples/nginx.png" style="width:70%">
97
119
</div>
98
120
121
+
122
+
99
123
We can choose either Node or Nginx as the web server. The top figure is with Node, while the bottom figure is with Nginx. It is worth noticing that with Nginx, the frontend server with Node only need to complete the compilation.
100
124
101
125
The following figure shows the success deployment and some console log for your debegging in the web inspection mode.
It is designed to be user-friendly and easily accessible to users with different technical backgrounds. To use the application, users may first follow the <a href="https://platform.openai.com/account/api-keys">link</a> on the first page to fetch their OpenAI API key which will be memorized before pressing the reset button, and paste the text to the form. After submitting the form, the original text will be rendered on the left side of the window, people may read some when they are waiting for the results from ChatGPT. After receiving the ChatGPT response, the browser will directly highlight the keywords in the original text and summary and compute the Jaccard similarity with respect to the keywords' appearance in the original text and summary.
0 commit comments