The home of the amigo-platform which serves as the main service for the amigo multimedia platform

Overview

amigo-platform

This is the home of the amigo-platform which serves as the main service for the amigo multimedia platform.

  • Authentication with JWT Token
  • REST Api for Messages, Albums, Multimedia and NFC
  • Connector to Jitsi for video conferences

Setup in Docker context for PRODUCTION

1. Install docker and docker-compose

https://docs.docker.com/compose/install/

2. Set the proper environment for docker

Copy "system.env.default" and change SECRETs and DB passwords before the use in a production environment!

Set at least the following variables, JITSI_JWT_APP_SECRET should have 32 chars!

AMIGO_ACCESS_TOKEN_SECRET=547fewtabd4w68b4w6
AMIGO_REFRESH_TOKEN_SECRET=547fewtabd4w68b4w7

JITSI_JWT_APP_ID=jitsi
JITSI_JWT_APP_SECRET=bbbbvvxxywqqqdddccsssxgasdfzaaaa
JITSI_ROOT_URL=https://amigo-dev.ossi-austria.org/

2. initialise docker container

This will start the amigo-platform and postgres services with the applied system.env

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

Development Environment

  1. Clone the project and checkout develop branch
git clone [email protected]:ossi-austria/amigo-server.git
cd amigo-server
git checkout develop
  1. Open project in favorite IDE (we use Intellij IDEA)

  2. Start services and database needed for development (currently only postgres database)

docker-compose up

Attention:

As the development Environment will only rely on POSTGRES within docker, you need to add the variables defined in system.env to the environment which runs spring boot server.

Do that a) as ENV VARs or better b) in IDE running config

  1. Start the "RestApplication" via Intellij with "dev" spring env profile active

Caution: The database is recreated on startup when schema changes happen. As we do not offer a stable version yet, we can live with this, but you should not.

Please be patient.

It may crash on first start for missing secrets, add those variables into the environment settings: Defaults for postgres might work on your machine, but not when localhost is not accessible. Map necessary env vars when defaults wont apply.

At least Jitsi info is needed in IDE run config:

JITSI_JWT_APP_SECRET=***;
JITSI_JWT_APP_ID=amigo-platform-dev;
JITSI_ROOT_URL=https://***/
  1. Add firebase-config

Firebase is need for FCM to support push notifications. Additional configs can be provided, in a $ROOT/configs directory which is ignored by git and NOT compiled into the app, but merely used as runtime config.

  • Ask someone for more information
  • Add firebase-service-account.json into that directory

Create OpenApi client from openApi

Note: Works with openApi v2 currently.

docker run --rm -v "${PWD}:/local" openapitools/openapi-generator-cli generate -i http://192.168.0.20:8080/v2/api-docs -g dart -o /local/out/dart

https://springframework.guru/spring-boot-restful-api-documentation-with-swagger-2/

Create Testdata via Swagger

  • http://amigo-dev.ossi-austria.org:8080/swagger-ui.html
  • loging with your Test user, via auth-api login (click on "Try out") { "email": "string", "password": "string" }
  • remember your data: personId, accessToken, eventually groupId
  • On every Request, provide personId as Amigo-Person-Id and accessToken as Authorization
You might also like...
Integration Testing Kotlin Multiplatform Kata for Kotlin Developers. The main goal is to practice integration testing using Ktor and Ktor Client Mock
Integration Testing Kotlin Multiplatform Kata for Kotlin Developers. The main goal is to practice integration testing using Ktor and Ktor Client Mock

This kata is a Kotlin multiplatform version of the kata KataTODOApiClientKotlin of Karumi. We are here to practice integration testing using HTTP stub

This app works as a simple replacement for SpongeAuth for those who want to use Discourse as the main SSO auth provider.

PowerNukkit Ore to Discourse Auth Gateway This app works as a simple replacement for SpongeAuth for those who want to use Discourse as the main SSO au

Candroid does things different. The Candroid app store is a library of APK client wrappers (F-Droid, APKPure, etc.) For the main Candroid app store, try visiting the Candroid Market.
Candroid does things different. The Candroid app store is a library of APK client wrappers (F-Droid, APKPure, etc.) For the main Candroid app store, try visiting the Candroid Market.

Candroid App Store Candroid does things different. The Candroid app store is a library of APK client wrappers (F-Droid, APKPure, etc.) For the main Ca

A tip app which the user can use a screen bar to choose a tip based on the service, the total is then displayed.

Tip Calculator Spencer Damon Tippy Total computes the tip and total amount for a bill. The app uses the base amount and tip percentage to calculate th

Starter project to create a simple RESTful web service in Kotlin

Modified: Adding Koin for DI Using JWT for authentication and authorization Dropping proprietary FlyAway tool Single Page Application support Starter

Demo Spting REST Service on Kotlin. Works with PostgreSQL via Spring Data. Data initialization provided by liquibase

Spring Boot REST API with Kotlin Spring Boot REST API service. Spring Data with PostgreSQL. Data initialization with Liquibase. Swagger UI Reference D

Template for a modern spring web service.

Spring Service Scaffold A scaffold for a web service operating with a Spring Framework backend, reactjs as frontend and a continuous testing and build

Block unknown callers with this call screening service.
Block unknown callers with this call screening service.

Silence Block unknown callers with this call screening service. By default numbers not in your contact list are blocked. Optionally allow: Numbers you

Service exposes sensitive administration APIs to initialize and set lower level of Slurpanize infrastructure

slurpanize-baker Project This project uses Quarkus, the Supersonic Subatomic Java Framework. If you want to learn more about Quarkus, please visit its

Owner
null
Nuestro amigo R2-D2 ha sido enviado junto a Luke Skywalker debido a una serie de problemas relacionados con la contaminación en la Luna de Endor. Problema de Acceso a Datos

# R2-D2 y las Lunas de Endor - Acceso a Datos Nuestro amigo R2-D2 ha sido enviado junto a Luke Skywalker debido a una serie de problemas relacionados

José Luis González Sánchez 6 Nov 2, 2022
Team management service is a production ready and fully tested service that can be used as a template for a microservices development.

team-mgmt-service Description Team management service is a production ready and fully tested service that can be used as a template for a microservice

Albert Llousas Ortiz 18 Oct 10, 2022
Accessibility-Service - Filter url from browser by using accessibility service

Accessibility Service example Filter url from browser by using accessibility ser

AmirMohammad Yazdanmanesh 8 Nov 29, 2022
Text-array-process - A home assignment used during the recruitment process at Lumera

Rules to implement class={isogram|palindrome|semordnilap} maxlength=<INT> minl

Mầu Tiến Đoàn 0 Jan 27, 2022
☁️ cloud.sh is a lightweight self-hosted cloud for your home lab.

DISCLAIMER: cloud.sh is under development. We do not recommend you to use it in a production environment for now. The storage could be corrupted when

Quentin Guidée 13 Nov 24, 2022
Maxibon kata for Kotlin Developers. The main goal is to practice property based testing.

Kata Maxibon for Kotlin. We are here to practice property based testing. We are going to use KotlinTest to write our tests. We are going to practice p

Karumi 44 Oct 3, 2022
KataContacts written in Kotlin. The main goal is to practice Clean Architecture Development

KataContacts written in Kotlin We are here to practice Clean Architecture Development. Clean Architecture is a way of structuring code. We are going t

Karumi 48 Oct 3, 2022
TODO API Client Kata for Kotlin Developers. The main goal is to practice integration testing using MockWebServer

KataTODOApiClient for Kotlin We are here to practice integration testsing using HTTP stubbing. We are going to use MockWebServer to simulate a HTTP se

Karumi 61 Nov 20, 2022
Screenshot Kata for Android Developers with Kotlin. The main goal is to practice UI Screenshot Testing.

KataScreenshot in Kotlin We are here to practice UI testing using screenshot tests for Android. We are going to use Espresso to interact with the Appl

Karumi 76 Nov 20, 2022
Super Heroes Kata for Android Developers in Kotlin. The main goal is to practice UI Testing.

KataSuperHeroes in Kotlin We are here to practice UI Testing. We are going to use Espresso to interact with the Application UI. We are going to use Ko

Karumi 86 Nov 20, 2022