https://github.com/dnutiu/retroactiune
Retroactiune is a web API for managing anonymous Feedback using a token-based system.
https://github.com/dnutiu/retroactiune
api asp-net-core docker-compose jwt mongodb swagger tests
Last synced: about 1 month ago
JSON representation
Retroactiune is a web API for managing anonymous Feedback using a token-based system.
- Host: GitHub
- URL: https://github.com/dnutiu/retroactiune
- Owner: dnutiu
- License: apache-2.0
- Created: 2021-05-28T20:53:18.000Z (about 5 years ago)
- Default Branch: main
- Last Pushed: 2021-07-26T19:24:49.000Z (almost 5 years ago)
- Last Synced: 2024-12-30T20:52:00.781Z (over 1 year ago)
- Topics: api, asp-net-core, docker-compose, jwt, mongodb, swagger, tests
- Language: C#
- Homepage:
- Size: 458 KB
- Stars: 1
- Watchers: 4
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: Readme.md
- License: LICENSE.txt
Awesome Lists containing this project
README
# Introduction

  

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](https://docs.microsoft.com/en-us/aspnet/core/) and [MongoDB](https://www.mongodb.com/).
```bash
dotnet --version
3.1.407
```
## Architecture
Example deployment architecture which uses [Prometheus](https://prometheus.io/) & [Grafana](https://grafana.com/) for monitoring, [Auth0](https://auth0.com/) as a authorization server
and [Sentry](https://sentry.io/welcome/) for error reporting.

The application code is organized using the [Clean Architecture](https://docs.microsoft.com/en-us/dotnet/architecture/modern-web-apps-azure/common-web-application-architectures#clean-architecture) approach.

## 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](https://auth0.com/) and their free tier.
See the following resources:
- https://auth0.com/docs/get-started/set-up-apis
- https://developers.redhat.com/blog/2020/01/29/api-login-and-jwt-token-generation-using-keycloak#set_up_a_client
## Developing
To install the dependencies run `dotnet restore`.
To run the project run
```bash
dotnet run --project .\Retroactiune.WebAPI\
```
To run unit and integration tests run:
_Note: [Docker](https://www.docker.com/) and [Docker-Compose](https://docs.docker.com/compose/) are needed to bring up the dependent services, see `docker-compose.yaml`._
```bash
docker-compose up -d
dotnet test
```
The projects has ~96% code coverage.