This page intention is to be start point for developers.
Repository
On the project we use git monorepo. Its URI is: https://github.com/SafiBank/SaFiMono. For access please contact Ion Mudreac @ Lark.
General rules for repo are:
No binaries (except UI stuff and gradle wrapper, etc)
No tooling configuration (.idea, .gradle)
No built and generated artefacts (in gradle like projects it means “build” folder)
No logs
Some things can be
Repository is organised as follows:
/services/* contains microservice modules. Each of the folders inside represents separate buildable module resulting into docker image. Microservice module names are lowercase separated by dashes. Eg. some-useful-manager or service-vendor-gateway. Currently we are going to use two types of suffixes:
manager - for module which usually has state and can handle some process. It serves its own services and consumes others. Example: some-useful-manager
gateway - usually stateless service, which encapsulates communication with third party. Translates domain entities into internal ones, meaning loose coupling and also covers security aspects. Only gateway is talking to the service outside of the Safi, and therefore only this gateway needs to be authenticated & authorised against 3rd party service.
/devops/* - devops related stuff
/app/* - frontend related stuff
Communication channels
Confluence
Collect business and IT requirements, flows etc. This should be the main source of information, resources at other places (Lark, google drive) should be linked from Confluence. If a Slack thread reaches an important conclusion, summarise it on Confluence as well.
Lark
Lark is used mainly to communicate product requirements with SaFi. It is for summarising documents and meeting minutes relevant for business people on SaFi side.
It is similar to Slack, but everything is invite-only, you can’t discover documents and channels unless you’re invited to them.
Ask your team lead if you need Lark access and which channels you need access to. (SaFi-IT-ALL, SaFi-IT-Architecture)
Google Drive
The drive folder https://drive.google.com/drive/folders/13V3A0kJi81J63hFYCbpD7HEtSvCgQBSP is for quick & easy access to key external documents (like 3rd party docs) + internal ones irrelevant for the client (internal presentations, internal meeting minutes, etc., WIP product documents etc.)
Slack
Safibank Slack is used as the daily communication channel. It is used to discuss technical details and encountered difficulties. Make sure to document major decisions in the ADR list.
Ask your team lead which channels are needed for you to join.