Git Product home page Git Product logo

fantastic-monorepos-and-where-to-find-them's Introduction

Fantastic MonoRepos and where to find them

Master

This is the companion project for a talk at the Karlsruher Entwicklertag 2024 and the talk Fantastische Monorepos und wo sie zu finden sind.

Project setup

This MonoRepo consist of 4 modules

  • build-logic: Contains convention plugins and custom plugins
  • server-api: Contains the api definition for the server module and generates the FE client
  • server: Spring Application that implements the API
  • web-angular: The Angular Frontend application calling the Server

Build logic

This module contains any convention plugins and custom plugins. Convention plugins define logic that can be reused with other modules to simplify their setup. A Kotlin convention plugin could contain for example the target java version, formatting options and custom repositories.

Server-Api

The server api contains primarily the Json definition for the API. With the help of the OpenAPIGenerator we can generate a compatible angular frontend client.

Server

The server module implements the API and provides your backend business logic. It also bundles the frontend application and serves it additionally to the RestControllers.

Web-Angular

This is a standard angular project. It has additionally a build.gradle.kts file to allow building and bundling the frontend with gradle.

Development

Building

Build the project with ./gradlew assemble. To bundle the frontend with the server run ./gradlew assemble -Pprod. This enables you to develop on the backend without having to build the frontend application.

To develop the frontend application use your standard Npm tools. Have a look at the Web-Angular-README

Testing

You can run the tests with ./gradlew check. This will run checks against the current project format and execute the specified tests.

Formatting

To check if all files are correctly formatted run either ./gradlew check or ./gradlew checkFormat. If you want to format files run ./gradlew format.

fantastic-monorepos-and-where-to-find-them's People

Contributors

renovate[bot] avatar simonhauck avatar

Watchers

 avatar  avatar

fantastic-monorepos-and-where-to-find-them's Issues

Dependency Dashboard

This issue lists Renovate updates and detected dependencies. Read the Dependency Dashboard docs to learn more.

Open

These updates have all been created already. Click a checkbox below to force a retry/rebase of any.

Detected dependencies

github-actions
.github/workflows/clear-cache.yml
  • actions/github-script v7
.github/workflows/run-tests.yml
  • actions/checkout v4
  • actions/setup-java v4
  • actions/cache v4
gradle
gradle.properties
settings.gradle.kts
  • org.gradle.toolchains.foojay-resolver-convention 0.8.0
build.gradle.kts
build-logic/gradle.properties
build-logic/settings.gradle.kts
  • org.gradle.toolchains.foojay-resolver-convention 0.8.0
build-logic/build.gradle.kts
build-logic/kotlin-convention/build.gradle.kts
build-logic/kotlin-convention/src/main/kotlin/build.common.kotlin-conventions.gradle.kts
build-logic/kotlin-convention/src/main/kotlin/build.common.spring-conventions.gradle.kts
build-logic/node-convention/build.gradle.kts
build-logic/node-convention/src/main/kotlin/build.common.node-conventions.gradle.kts
gradle/libs.versions.toml
  • org.jetbrains.kotlin:kotlin-gradle-plugin 2.0.0
  • org.springframework.boot:spring-boot-gradle-plugin 3.3.1
  • org.jetbrains.kotlin:kotlin-allopen 2.0.0
  • io.spring.gradle:dependency-management-plugin 1.1.5
  • com.ncorti.ktfmt.gradle:plugin 0.18.0
  • com.adarshr:gradle-test-logger-plugin 4.0.0
  • com.github.node-gradle:gradle-node-plugin 7.0.2
  • org.springdoc:springdoc-openapi-starter-webmvc-ui 2.6.0
  • org.junit.jupiter:junit-jupiter 5.10.3
  • org.mockito.kotlin:mockito-kotlin 5.3.1
  • org.springdoc.openapi-gradle-plugin 1.9.0
  • org.openapi.generator 7.7.0
server/build.gradle.kts
server-api/build.gradle.kts
web-angular/build.gradle.kts
gradle-wrapper
gradle/wrapper/gradle-wrapper.properties
  • gradle 8.8
npm
web-angular/package.json
  • @angular/animations ^18.0.1
  • @angular/common ^18.0.1
  • @angular/compiler ^18.0.1
  • @angular/core ^18.0.1
  • @angular/forms ^18.0.1
  • @angular/platform-browser ^18.0.1
  • @angular/platform-browser-dynamic ^18.0.1
  • @angular/router ^18.0.1
  • rxjs ~7.8.0
  • tslib ^2.3.0
  • zone.js ~0.14.3
  • @angular-devkit/build-angular ^18.0.2
  • @angular-eslint/builder 18.1.0
  • @angular-eslint/eslint-plugin 18.1.0
  • @angular-eslint/eslint-plugin-template 18.1.0
  • @angular-eslint/schematics 18.1.0
  • @angular-eslint/template-parser 18.1.0
  • @angular/cli ^18.0.2
  • @angular/compiler-cli ^18.0.1
  • @types/jest ^29.5.12
  • @typescript-eslint/eslint-plugin 7.15.0
  • @typescript-eslint/parser 7.15.0
  • eslint ^8.57.0
  • eslint-config-prettier ^9.1.0
  • eslint-plugin-prettier ^5.1.3
  • jasmine-core ~5.1.0
  • jest ^29.7.0
  • jest-preset-angular ^14.1.0
  • prettier ^3.2.5
  • prettier-eslint ^16.3.0
  • typescript ~5.4.2

  • Check this box to trigger a request for Renovate to run again on this repository

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.