All Projects → OSOSystem → oso-backend

OSOSystem / oso-backend

Licence: Apache-2.0 license
Heart of the oso project.

Programming Languages

kotlin
9241 projects

Projects that are alternatives of or similar to oso-backend

vagas
Espaço para a divulgação de vagas para desenvolvedores backend via issues do Github.
Stars: ✭ 5,685 (+47275%)
Mutual labels:  backend
1974
Curso 1974 - Criando APIs com ASP.NET Core 2.0 e Dapper
Stars: ✭ 44 (+266.67%)
Mutual labels:  backend
ktor-API-examples
Examples with ktor to create an API REST
Stars: ✭ 23 (+91.67%)
Mutual labels:  location
browser-push
Complete workout and guidelines to add web push notifications support for your webapp without third-party notification provider
Stars: ✭ 67 (+458.33%)
Mutual labels:  backend
vue2-element
基于vue2 + vue-router2 + element-ui + vuex2 + fetch + webpack2 企业级后台管理系统最佳实践
Stars: ✭ 115 (+858.33%)
Mutual labels:  backend
redux-clean-architecture
📐 A clean architecture framwork
Stars: ✭ 40 (+233.33%)
Mutual labels:  backend
Everything-Tech
A collection of online resources to help you on your Tech journey.
Stars: ✭ 396 (+3200%)
Mutual labels:  backend
keycloak-clustered
keycloak-clustered extends Keycloak docker image. It allows to run easily a cluster of Keycloak instances
Stars: ✭ 80 (+566.67%)
Mutual labels:  keycloak
flexmeasures
The intelligent & developer-friendly EMS to support real-time energy flexibility apps, rapidly and scalable.
Stars: ✭ 79 (+558.33%)
Mutual labels:  backend
keycloak-phone-provider
A Keycloak provider which phone and SMS
Stars: ✭ 83 (+591.67%)
Mutual labels:  keycloak
zx-ip-address
Deprecated
Stars: ✭ 96 (+700%)
Mutual labels:  location
diff
Visually compare Scala data structures with out of the box support for arbitrary case classes.
Stars: ✭ 179 (+1391.67%)
Mutual labels:  backend
dipdup-py
Modular framework for creating selective indexers and featureful backends for dapps
Stars: ✭ 49 (+308.33%)
Mutual labels:  backend
hesperides
Configuration management tool providing universal text file templating and properties editing through a REST API or a webapp (backend part)
Stars: ✭ 35 (+191.67%)
Mutual labels:  backend
mara-db
Lightweight configuration and access to multiple databases in a single project
Stars: ✭ 36 (+200%)
Mutual labels:  backend
keycloak-springsecurity5-sample
Spring Security 5 OAuth2 Client/OIDC integration with Keycloak sample
Stars: ✭ 55 (+358.33%)
Mutual labels:  keycloak
WeChatSendLocation
仿微信发送位置模块 包括位置的选取 位置的查看 导航街景路线等
Stars: ✭ 19 (+58.33%)
Mutual labels:  location
Generation
⭐ A Private, Secure, End-to-End Encrypted Messaging app made in Flutter(With Firebase and SQLite) that helps you to connect with your connections without any Ads, promotion. No other third-party person, organization, or even Generation Team can't read your messages. 💝
Stars: ✭ 18 (+50%)
Mutual labels:  location
vagas
🤝 Venha fazer parte do nosso time
Stars: ✭ 15 (+25%)
Mutual labels:  backend
QuakeMigrate
A Python package for automatic earthquake detection and location using waveform migration and stacking.
Stars: ✭ 101 (+741.67%)
Mutual labels:  location

OSO Backend

Quality Gate Status Security Rating CodeFactor Codacy Badge Build Status FOSSA Status

Monolithic backend written in Kotlin for the OSO Project. It uses Gradle as dependency management and build tool.

Exposes a REST and TCP interface where different devices can send emergencies to it. The backend is responsible for redirecting these emergencies to a group of people called help-providers who then can take care of it.

What is exactly an emergency in our domain? Check out our Glossary.

Development environment

As this is an open source project we want to encourage you to get involved. ☺️
Here is a guide on how to setup a development environment. If something in this README is unclear, just let us know.

Table of contents

Application

We use docker and docker-compose to build images and run these assembled images in containers.

To install the Docker Community Edition visit
https://docs.docker.com/install/

To install Docker Compose visit
https://docs.docker.com/compose/install/


Building

Before an docker image can be assembled a jar has to exist.

The jar can be built by using the Gradle wrapper gradlew which is included in this repository.

The task is executed like this

on Windows

gradlew bootJar

on Linux/Unix

./gradlew bootJar

Successful? Now build the image/s with docker-compose

docker-compose build

API Documentation

A documentation can be generated with Spring REST Docs based on our written tests. The Gradle task to do this is asciidoctor. After the task is executed the documentation can be found under the path build/asciidoc/html5/index.html.

Starting

To start the application it is necessary that the Postgres service is running. This dependency is expressed in our compose files with many other things.

We have multiple of these compose files which we are going to briefly discuss

Note: Automatic service discovery does not work for the default bridge network. Therefore a new network bridged is created in order for the containers to communicate.

To start the containers just type the following

docker-compose -f docker-compose.yml -f docker-compose.dev.yml up -d

Note: The docker-compose.dev.yml is written as last because it extends the base docker-compose file.

Debugging

A socket is listening on port 8000 for attaching a remote debugger to it.

When using IntelliJ for instance, you can just simply add a new remote configuration with the following settings

Host: localhost
Port: 8000
Debugger Mode: Attach to remote JVM

Now set a breakpoint and you are ready to go!

PostgreSQL

We use PostgreSQL as our primary data store.

Note: Currently the tables are generated automatically from the JPA Entities described in the source code.

Docker

We provide another Postgres Dockerfile which uses the postgres:alpine image as base and copies the init.sh on it. The script makes sure to create the needed users and databases.

Keycloak

We use Keycloak for user authentication and authorization.
There is a oso-realm.json in this repository which provides a basic configuration.

When the keycloak instance is started the admin interface is accessible at http://localhost:8080/auth/admin

The default credentials are
user: developer
password: ososystem

This section will be further expanded in the future as we are still trying some things out with Keycloak.
It is a really complex and powerful FOSS.

Contribute to the project

Everyone is welcome to contribute to this project. Check out our issues tab and pick one issue out which seems fitting to you. To get changes merged into the master branch you need to create a pull request.

Stay in touch

Any questions or suggestions? Just write an E-Mail to [email protected]

If you want to get in touch with us in a more relaxed atmosphere, consider joining the discord server.
💥Instant Transmission💥

License

This project is released under version 2.0 of the Apache License.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].