/financial-entries

financial-entries API made with .NET Core

Primary LanguageC#

Financial Entries API

Made with .NET Core 3.0, Google Cloud Firestore and Google App Engine

Instructions to run locally

  • Install and configure .NET Core SDK according your platform
  • Download this repository and run in terminal:
cd Src/
dotnet restore
dotnet run

In terminal will be available the API port and location (in general is http://localhost:5000)

Optionally, run with Docker

If you prefer, you can run this project in Docker container.

  • Install and configure Docker Engine Community according your platform
  • Download this repository and run in terminal:
cd Src/
docker build -t app .
docker run -d -p 8080:8080 --rm --name api app

Server will be running at http://localhost:8080

Running tests

cd Tests/
dotnet restore
dotnet test

Documentation

While running the project, you can access the Swagger UI at /docs endpoint. This will show all API resources, properties and responses.

  • Insomnia Workspace is available at insomnia.json as alternative.

See in action running into Google Cloud Platform

An instance of Google App Engine is running for this project at: http://financial-entries-259514.appspot.com/

Performance test

Using Apache JMeter, I've tested /statements API with application deployed in GCP.

Scenario: 300 Financial Entries in application, 300 users making HTTP Requests with a Ramp-up period of 1 second.

Results

Min: ~19ms
Max: ~3s
Average: ~872ms

To reproduce the test, you can use performance.jmx file in Apache JMeter. (Scenario must be recreated)

Notes

  • SSL Certification is disabled to be easier to test, but in real production scenario need to be activated for security reasons.
  • credentials.json is a GCP limited access to write/read Firestore information. Need to remove from the repository in real scenarios, it's here just to made our life easier.