For the Kotlin Backend Developer course
The web service allows any user to publish a question with predefined list of answers. Other users may select answers from the list and view statistics of selections. Display questions ordered by time or count of answers.
The Opinion service is a web service that does not help you to resolve problems, instead it allows you to know what people think about some common questions related to everyday life, habits, personal preferences, beliefs, traditions, life values.
The key features of the service:
- open-source
- respect user privacy
- free to use, self-moderated, and community-driven - like StackOverflow and Wikipedia
- able to analise collected information and allow build statistics based on wide set of parameters - answer time, country, age, gender, language, etc. In that the service reminds survey services similar with SurveyMonkey, and Typeform.
- can be used as a kind of online voting system (examples: https://www.capterra.com/voting-software/, https://transmitter.ieee.org/makerproject/view/91d35)
Such service may be interesting for ordinary people, because sharing common values is important for humans. Also it may be interesting for social researchers, psychologists, philosophers, politicians, marketers, etc. The obvious problem with such service is how to motivate people for participation. I do not know, but I found a successful example - the TruePublic is very close to the desired service.
- backend/apps/kafka Application with Kafka as a transport.
- backend/apps/ktor Ktor application.
- backend/services Service layer.
- backend/models Inner models, and their stubs.
- backend/dsl/cor DSL library used to implement Chain of Responsibility pattern
- docker Docker-compose configurations to run applications in containers
- backend/logics Business logic
- multiplatform/rest Test HTTP requests
- multiplatform/specs Open API service description
- backend/transport/mapping Mapping between transport and inner models
- backend/transport/openapi Transport models (generated with OpenAPI), and their stubs
- backend/validation Request validators