Retroactiune is a web API for managing anonymous Feedback using a token-based system.
Find a file
2021-07-26 22:24:45 +03:00
.circleci rename config.yaml to config.yml 2021-07-07 19:46:03 +03:00
docs update readme.md 2021-07-17 22:25:59 +03:00
Retroactiune.Core Add unit tests for GET feedbacks 2021-07-24 19:04:07 +03:00
Retroactiune.Infrastructure Add unit tests for AddFeedback operation, Token.IsValid 2021-07-11 16:26:01 +03:00
Retroactiune.IntegrationTests Implement support for external authentication provider with Bearer tokens. 2021-07-26 22:21:26 +03:00
Retroactiune.UnitTests Add unit tests for CheckToken 2021-07-25 14:08:35 +03:00
Retroactiune.WebAPI Remove UI TODO from Startup. 2021-07-26 22:24:45 +03:00
.gitignore Initial commit 2021-05-28 23:52:56 +03:00
docker-compose.yaml Implement Post action for FeedbackReceiverController.cs 2021-05-29 20:02:16 +03:00
LICENSE.txt Create LICENSE.txt 2021-07-17 22:31:05 +03:00
Readme.md Implement support for external authentication provider with Bearer tokens. 2021-07-26 22:21:26 +03:00
Retroactiune.sln Refactor project structure to clean architecture model. 2021-06-21 17:46:44 +03:00

Introduction

Build Status
GitHub commit activity GitHub repo size GitHub top language

Swagger API

Retroactiune is a project for managing Feedback. It works in the following way, an Admin to creates FeedbackReceivers that will receive Feedback. Then it will generate Tokens that can be distributed to the users. A Tokens is bound to a single FeedbackReceiver and it's a one time use for giving Feedback.

The given Feedback is anonymous by design.

Tech Stack

The project uses ASP .Net Core 3.1 and MongoDB.

dotnet --version
3.1.407

Architecture

Example deployment architecture which uses Prometheus & Grafana for monitoring, Auth0 as a authorization server and Sentry for error reporting.

Example deployment architecture

The application code is organized using the Clean Architecture approach.

Example deployment architecture

Authorization Provider

An external Authorization provider is required in order to run the API, the provider needs to support Bearer tokens and HS256 key signing algorithm. RS256 is currently not supported.

I recommend that you start with Auth0 and their free tier.

See the following resources:

Developing

To install the dependencies run dotnet restore.

To run the project run

dotnet run --project .\Retroactiune.WebAPI\

To run unit and integration tests run:

Note: Docker and Docker-Compose are needed to bring up the dependent services, see docker-compose.yaml.

docker-compose up -d
dotnet test

The projects has ~96% code coverage.