Skip to content

Commit

Permalink
docs: edit system reqmts [skip ci]
Browse files Browse the repository at this point in the history
  • Loading branch information
tyknkd committed May 24, 2024
1 parent 77cade3 commit 76f4ca9
Showing 1 changed file with 28 additions and 16 deletions.
44 changes: 28 additions & 16 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,18 @@ recent tech industry news articles, automatically extract common themes, and sor
aim is to help readers quickly identify current trends in media reporting on the tech industry and focus on the topics of
most interest to the reader.

## System Requirements
The following are the requirements for the project. Links to the corresponding code used to test the requirements is given in parentheses.
1. Users can view a web page displaying titles of articles grouped by topic ([integration test](https://github.com/tyknkd/news-analyzer/blob/main/applications/web-server/src/test/kotlin/test/newsanalyzer/webserver/ApplicationTest.kt))
2. Users can click a link to navigate to the full article on the publisher website ([integration test](https://github.com/tyknkd/news-analyzer/blob/main/applications/web-server/src/test/kotlin/test/newsanalyzer/webserver/ApplicationTest.kt))
3. Users can click a link to view all article titles assigned to a topic ([integration test](https://github.com/tyknkd/news-analyzer/blob/main/applications/web-server/src/test/kotlin/test/newsanalyzer/webserver/ApplicationTest.kt))
4. Users can view a list of all the topics ([integration test](https://github.com/tyknkd/news-analyzer/blob/main/applications/web-server/src/test/kotlin/test/newsanalyzer/webserver/ApplicationTest.kt))
5. Users can view a page summarizing the purpose of the website ([integration test](https://github.com/tyknkd/news-analyzer/blob/main/applications/web-server/src/test/kotlin/test/newsanalyzer/webserver/ApplicationTest.kt))
6. Users can receive the data via a REST API ([integration test](https://github.com/tyknkd/news-analyzer/blob/main/applications/web-server/src/test/kotlin/test/newsanalyzer/webserver/ApplicationTest.kt))
7. The system can collect the data from external APIs ([unit test](https://github.com/tyknkd/news-analyzer/blob/main/applications/data-collector/src/test/kotlin/test/newsanalyzer/datacollector/DataCollectorTest.kt))
8. The system can persist the data ([unit test](https://github.com/tyknkd/news-analyzer/tree/main/components/data-support/src/test/kotlin/test/newsanalyzer/datasupport))
9. The system can update the data as new data becomes available ([unit test](https://github.com/tyknkd/news-analyzer/blob/main/applications/data-collector/src/test/kotlin/test/newsanalyzer/datacollector/DataGatewayTest.kt))

## Architecture
![architecture diagram](https://github.com/tyknkd/news-analyzer/blob/main/images/architecture_diagram.png)

Expand Down Expand Up @@ -58,24 +70,24 @@ The following technology tools were used to implement the project.
- [GitHub](https://github.com/): Version control, continuous integration and deployment
- [Google Kubernetes Engine](https://cloud.google.com/kubernetes-engine): v.1.28.8: Cloud computing service

## Requirements
## Software Features
This table summarizes the required software features and practices implemented in the project and the corresponding code.

| Feature | Code |
|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|----------|
| [Web application](https://www.jeitikei.online/) | [applications/web-server](https://github.com/tyknkd/news-analyzer/tree/main/applications/web-server) |
| Data collection | [applications/data-collector](https://github.com/tyknkd/news-analyzer/tree/main/applications/data-collector) |
| Data analyzer | [applications/data-analyzer](https://github.com/tyknkd/news-analyzer/tree/main/applications/data-analyzer) |
| [Unit tests](https://github.com/tyknkd/news-analyzer/actions) | [web-server/src/test](https://github.com/tyknkd/news-analyzer/tree/main/applications/web-server/src/test/), [data-collector/src/test](https://github.com/tyknkd/news-analyzer/tree/main/applications/data-collector/src/test/), [data-analyzer/src/test](https://github.com/tyknkd/news-analyzer/tree/main/applications/data-analyzer/src/test/), [data-support/src/test](https://github.com/tyknkd/news-analyzer/tree/main/components/data-support/src/test/), etc. |
| Data persistence | [components/data-support](https://github.com/tyknkd/news-analyzer/tree/main/components/data-support) |
| [REST API endpoint](https://www.jeitikei.online/api/) | [web-server/src/main/kotlin/io/newsanalyzer/webserver/plugins/Routing.kt](https://github.com/tyknkd/news-analyzer/blob/main/applications/web-server/src/main/kotlin/io/newsanalyzer/webserver/plugins/Routing.kt) |
| [Production environment](https://www.jeitikei.online/) | [deployment](https://github.com/tyknkd/news-analyzer/tree/main/deployment) |
| [Integration tests](https://github.com/tyknkd/news-analyzer/actions) | [web-server/src/test](https://github.com/tyknkd/news-analyzer/tree/main/applications/web-server/src/test/), [data-collector/src/test](https://github.com/tyknkd/news-analyzer/tree/main/applications/data-collector/src/test/), [data-analyzer/src/test](https://github.com/tyknkd/news-analyzer/tree/main/applications/data-analyzer/src/test/) |
| Test doubles | [components/test-support](https://github.com/tyknkd/news-analyzer/tree/main/components/test-support) |
| [Continuous integration](https://github.com/tyknkd/news-analyzer/actions) | [github/workflows](https://github.com/tyknkd/news-analyzer/tree/main/.github/workflows) |
| Monitoring ([screenshot](https://github.com/tyknkd/news-analyzer/blob/main/images/monitoring_workloads.png), [health](https://www.jeitikei.online/health/), [metrics](https://www.jeitikei.online/metrics/)) | [monitoring](https://github.com/tyknkd/news-analyzer/tree/main/monitoring) |
| Event collaboration messaging | [components/mq-support](https://github.com/tyknkd/news-analyzer/tree/main/components/mq-support) |
| [Continuous delivery](https://github.com/tyknkd/news-analyzer/actions) | [github/workflows](https://github.com/tyknkd/news-analyzer/tree/main/.github/workflows) |
| Feature | Code |
|---------|--------|
| [Web application](https://www.jeitikei.online/) | [applications/web-server](https://github.com/tyknkd/news-analyzer/tree/main/applications/web-server) |
| Data collection | [applications/data-collector](https://github.com/tyknkd/news-analyzer/tree/main/applications/data-collector) |
| Data analyzer | [applications/data-analyzer](https://github.com/tyknkd/news-analyzer/tree/main/applications/data-analyzer)|
| [Unit tests](https://github.com/tyknkd/news-analyzer/actions) | [web-server/src/test](https://github.com/tyknkd/news-analyzer/tree/main/applications/web-server/src/test/kotlin/test/newsanalyzer/webserver), [data-collector/src/test](https://github.com/tyknkd/news-analyzer/tree/main/applications/data-collector/src/test/kotlin/test/newsanalyzer/datacollector), [data-analyzer/src/test](https://github.com/tyknkd/news-analyzer/tree/main/applications/data-analyzer/src/test/kotlin/test/newsanalyzer/dataanalyzer), [data-support/src/test](https://github.com/tyknkd/news-analyzer/tree/main/components/data-support/src/test/kotlin/test/newsanalyzer/datasupport), [mq-support/src/test](https://github.com/tyknkd/news-analyzer/tree/main/components/mq-support/src/test/kotlin/test/newsanalyzer/mqsupport) |
| Data persistence | [components/data-support](https://github.com/tyknkd/news-analyzer/tree/main/components/data-support) |
| [REST API endpoint](https://www.jeitikei.online/api/) | [web-server/src/main/kotlin/io/newsanalyzer/webserver/plugins/Routing.kt](https://github.com/tyknkd/news-analyzer/blob/main/applications/web-server/src/main/kotlin/io/newsanalyzer/webserver/plugins/Routing.kt) |
| [Production environment](https://www.jeitikei.online/) | [deployment](https://github.com/tyknkd/news-analyzer/tree/main/deployment) |
| [Integration tests](https://github.com/tyknkd/news-analyzer/actions) | [web-server/src/test](https://github.com/tyknkd/news-analyzer/blob/main/applications/web-server/src/test/kotlin/test/newsanalyzer/webserver/ApplicationTest.kt), [data-collector/src/test](https://github.com/tyknkd/news-analyzer/blob/main/applications/data-collector/src/test/kotlin/test/newsanalyzer/datacollector/ApplicationTest.kt), [data-analyzer/src/test](https://github.com/tyknkd/news-analyzer/blob/main/applications/data-analyzer/src/test/kotlin/test/newsanalyzer/dataanalyzer/ApplicationTest.kt) |
| Test doubles | [components/test-support](https://github.com/tyknkd/news-analyzer/tree/main/components/test-support) |
| [Continuous integration](https://github.com/tyknkd/news-analyzer/actions) | [github/workflows](https://github.com/tyknkd/news-analyzer/tree/main/.github/workflows) |
| Monitoring ([screenshot](https://github.com/tyknkd/news-analyzer/blob/main/images/monitoring_workloads.png), [health](https://www.jeitikei.online/health/), [metrics](https://www.jeitikei.online/metrics/)) | [monitoring](https://github.com/tyknkd/news-analyzer/tree/main/monitoring) |
| Event collaboration messaging | [components/mq-support](https://github.com/tyknkd/news-analyzer/tree/main/components/mq-support) |
| [Continuous delivery](https://github.com/tyknkd/news-analyzer/actions) | [github/workflows](https://github.com/tyknkd/news-analyzer/tree/main/.github/workflows) |

## Testing
Gradle is used to implement unit and integration tests, and these tests are incorporated into the continuous integration/continuous
Expand Down

0 comments on commit 76f4ca9

Please sign in to comment.