Skip to content

03. Developer Guide

Valentin edited this page May 10, 2024 · 13 revisions

Development setup

Our application is split up in 4 repositories:

  • workspace: This repository serves as a container for the others. It contains workspace configuration, helper scripts, the wiki and a docker compose. It's readme file guides developers through the whole local setup of our applciation
  • findme-backend: Containing the backend code of both microservices.
  • findme-frontend: One frontend repository containing all the frontend code of the UI
  • findme-shared: Code which is shared between both microservices. Currently, this is authentication functionality which is used for authenticating with Auth0

The development workspace is configured as a pycharm project. It is intended to be used as the project folder. Each repository used for development will be cloned inside this workspace. For more information on how to set up the repository, visit the workspace

workspace
-- .idea # pycharm project configuration
-- scripts # configuration / commit scripts
  # findme repositories
-- backend
-- frontend
-- shared
-- workspace.wiki # findme wiki
docker-compose.yml # to run application locally

API documentation

Our API documentation is auto generated using OpenAPI (Swagger). For each microservice, there exists a separate webpage:

In case you are developing locally and want to visit the API page of your local application:

  • Findme-Users: {your_application_url}/users/swagger
  • Findme-loationRiddles: {your_application_url}/location-riddles/swagger

Testing

  • Backend tests: A unit test suite is in place that allows the automated backend testing. For that, each microservice has a folder findme-users/tests and findme-location-riddles/tests. Further, a test report can be generated to analyze whether new features require further testing. Such a test report can be generated using a python script.
  • End-to-End tests: can be run locally to ensure that the application as a whole is behaving as expected. These tests are located in the frontend repository in the /tests folder. It is important to notice that these tests simulate user behavior and can be a little flaky due to slow response times.
Clone this wiki locally