tech-by-design / polyglot-prime

Primary monorepo for TechBD polyglot bespoke code
https://tech-by-design.github.io/polyglot-prime/
GNU Affero General Public License v3.0
1 stars 17 forks source link

TechBD Polyglot Monorepo

Welcome to the TechBD Polyglot Prime repository! This repository is the central hub for all bespoke code managed by Technology By Design (TechBD). Our goal is to maintain a well-organized, scalable, and efficient monorepo that supports our diverse range of projects and technologies.

Primary Languages and Frameworks

At TechBD, we focus on the following primary languages and frameworks for our enterprise and utility projects:

Monorepo Strategy

Inspired by the practices at Microsoft, Google, and other large software companies, we have designed our monorepo strategy to facilitate collaboration, maintainability, and scalability. Here are the key aspects of our strategy:

  1. Modular Structure: Each top-level directory represents a distinct project or service. This allows for clear separation of concerns and easy navigation.
  2. Consistent Naming Conventions: Follow consistent naming conventions to make it easier to locate and manage code.
  3. Shared Libraries: Common libraries and utilities will be placed in a shared directory to promote code reuse.
  4. Version Control: Use Git submodules or subtree for managing third-party dependencies to keep the repository clean and manageable.
  5. CI/CD Integration: Integrate Continuous Integration and Continuous Deployment (CI/CD) pipelines for automated testing and deployment.
  6. Documentation: Each project will contain comprehensive documentation to assist developers in understanding and contributing to the codebase.

Repository Structure

.
├── hub-prime
│   ├── lib
│   ├── src
│   │   ├── main
│   │   │   ├── java
│   │   │   │   └── org
│   │   │   │       └── techbd
│   │   │   │           ├── conf
│   │   │   │           ├── orchestrate
│   │   │   │           │   ├── fhir
│   │   │   │           │   └── sftp
│   │   │   │           ├── service
│   │   │   │           │   └── http
│   │   │   │           │       ├── filter
│   │   │   │           │       └── hub
│   │   │   │           ├── udi
│   │   │   │           └── util
│   │   │   └── resources
│   │   │       ├── META-INF
│   │   │       ├── public
│   │   │       └── templates
│   │   │           ├── fragments
│   │   │           ├── layout
│   │   │           ├── login
│   │   │           ├── mock
│   │   │           │   └── shinny-data-lake
│   │   │           │       └── 1115-validate
│   │   │           └── page
│   │   │               └── interactions
│   │   ├── site
│   │   │   └── markdown
│   │   └── test
│   │       └── java
│   │           └── org
│   │               └── techbd
│   │                   ├── orchestrate
│   │                   │   └── fhir
│   │                   ├── service
│   │                   │   └── http
│   │                   │       └── hub
│   │                   └── util
│   └── target
|
└── udi-prime
    ├── lib
    ├── src
    │   ├── main
    │   │   └── postgres
    │   │       └── ingestion-center
    │   └── test
    │       └── postgres
    │           └── ingestion-center
    ├── support
    │   └── jooq
    │       └── lib
    └── target

Project: TechBD Primary Hub

The hub-prime project is a Java Spring Boot application which serves FHIR API endpoints.

Project Setup

To set up the TechBD Hub project, follow these steps:

  1. Clone the Repository:

    git clone https://github.com/tech-by-design/polyglot-prime.git
    cd polyglot-prime
    direnv allow               # apply the env vars
    cp .envrc.example .envrc   # assume the use of direnv
    vi .envrc                  # make sure to store secrets in ENV or Vault, not in Git
    cd hub-prime
  2. Build the Project:

    mvn clean install
  3. Run the Application:

    mvn spring-boot:run
  4. Access the Application: Open your browser and navigate to http://localhost:8080.

Shared Libraries

Supporting Work Products