This repo is a monorepo to contain all of the Source+ services. Each service is implemented under the services directory,
and each service has its own README, Makefile, and documentation.
libcommon is a common directory for any logic reused between services, as well as consts on how they
should communicate to eachother (e.g. topic names).
examples includes example logic which is not part of a service, but is relevant to how to use some services. For examples,
front end code to complete the authentication flow.
All docs are located in docs directories, and are exported as HTML files. You should be able to load these
in your local browser to read through the documentation.
The root directory has a docker-compose.yml which should be able to be started with
docker-compose up --build. This wil start all services, and you can access them at the ports
specified in the docker-compose.yml file.
You can start individual services by naming them (e.g. docker-compose up --build auth_app). Be wary, some services are
dependent on other platforms (e.g. a service require a local database to be running).
You can turn all on services and have them connected by going to the local directory and running make up. This will start all services and connect them using goaws queues and topics. To stop the services, run make stop.
For any given service, there's a Makefile which performs some basic actions.
make up- Start all servicesmake stop- Stop all servicesmake build- Build the container. Try to not run locally unless you know what you're doing, this runs in the CI/CD on CodePipeline.make docs- Generate the HTML documentation.make test- Run all unit and integration tests.make unit_tests- Run all unit tests.make integration_tests- Run all integration tests.make coverage- Test test coverage.make migrate- Run alembic migrations for the database.make lint- Lint the repositories.