The Log Viewer is a demo web application to save the Nginx and Apache Web Server access logs in the database through a simple and friendly interface.
Main features:
- Create, edit, query, and delete logs
- Import the Nginx and Apache access log files for batch create
| Program | Version |
|---|---|
| .NET Core | 3.1 |
| PostgreSQL | 13.1 |
| Docker | 19.03 |
| Docker Compose | 1.27.4 |
| Angular CLI | 11.0.7 |
| Nginx (Docker) | 1.19.6-alpine |
| NodeJS | 14.15 |
This application requires .NET Core 3.1, Docker 19+, NodeJS and Angular CLI installed on your OS.
To run the Log Viewer appllcation with Docker, you need only this programs installed at your OS:
| Program | Version |
|---|---|
| Docker | 19.03 |
| Docker Compose | 1.27.4 |
If the requirements are satisfied, please execute the following command do up the stack:
docker-compose build
docker-compose up -dThe docker-compose create these instances:
| Instance | Description |
|---|---|
| logviewer_logviewer-api | LogViewer API - Available at http://localhost:5000/api Swagger Docs |
| logviewer_web | LogViewer Front - Available at http://localhost:4500 |
| logviewer_db | LogViewer Database - PostgreSQL using the 5432/tcp port |
Run the project in the Visual Studio 2019+ for debugging, execute the unit tests and understand the application logic applyed for this PoC.
The backend source code has the following layers:
| Layer | Main objective |
|---|---|
| LogViewer | The principal project, here are located the controllers and middlewares of the application. |
| LogViewer.Business | This project provides the application's logic, validations and communication between the Controllers, and the repository (database) layers. |
| LogViewer.Repository | This project provides an abstraction of the database connection and CRUD operations. |
| LogViewer.Models | This class library contains the POCO objects returned by business and API layers to clients. |
| LogViewer.Infrastructure | This class library contains mainly the helpers, constants, and common classes used by entire projects. |
| LogViewerTests | Contains all unit tests |
Before start the application for the first time, check the database connection string located at appsettings.development.json file, and change it if necessary.
After start the debugging, a new browser window will be open with the Swagger documentation of the API. You can test all endpoints.
The frontend application is located at logviewer-front directory and can be opened with Visual Studio Code or any text editor of your preference.
The is application is a single Angular project with consumes the backend API.
Install the dependencies with the command:
npm installTo execute the unit tests, execute the next command:
ng testTo run this project, execute the following command:
npm startAfter the compile step, the frontend is available at http://localhost:4200.