Giter Site home page Giter Site logo

andrescosta / todo-spring-react Goto Github PK

View Code? Open in Web Editor NEW
2.0 2.0 0.0 2.02 MB

An educational TODO application with a full-stack setup featuring React for the frontend, Java 21 and Spring Boot for the backend, Kubernetes for orchestration, PostgreSQL as the database, the Grafana observability stack, and KeyCloak for authentication and authorization.

Shell 3.99% Dockerfile 0.88% Java 50.81% Batchfile 0.15% HTML 19.64% JavaScript 14.54% CSS 0.53% Go 9.28% PowerShell 0.19%
java spring-boot grafana grafana-loki grafana-prometheus keycloak openid-connect postgresql kubernetes react docker testcontainers grafana-tempo spring spring-rest-docs

todo-spring-react's Introduction

Project: TODO App

High level architecture

Alt

Data Model

erDiagram
  MUser ||--o{ Activity : creates
  Activity ||--o{ Media : associates
  Activity ||--o{ Label_Activity : associates
  MUser ||--o{ Label: owns
  Label ||--o{ Label_Activity : associates

  MUser {
      bigint id PK
      uuid public_id UK
      text full_name
      text mail
      timestamptz created_at
      timestamptz updated_at
  }
  Activity {
    bigint id PK
    uuid public_id UK
    text name
    text description
    text type
    text status
    text state
    text[] tags
    jsonb extra_data
    bigint muser_id FK
    timestamptz created_at
    timestamptz updated_at
  }
  
  Label {
    bigint id PK
    uuid public_id UK
    text name
    text description
    bigint muser_id FK
    timestamptz created_at
    timestamptz updated_at
  }

  Media {
    bigint id PK
    uuid public_id UK
    bigint activity_id FK
    text name
    text type
    text uri
    text description
    json extra_data
    timestamptz created_at
    timestamptz updated_at
  }
  Label_Activity {
    bigint id PK
    bigint label_id FK
    bigint activity_id FK
    timestamptz created_at
    timestamptz updated_at
  }
Loading

Stack

Activity Service

  • Java 19
  • Go (Improver job service)
  • Spring Boot
  • Spring RestDocs
  • Micrometer
  • Zipkin
  • Loki4j
  • Pyroscope
  • Slf4j
  • Maven
  • GSon
  • JJWT

Identity Management

  • KeyCloak (SSO)
    • OpenID Connect

Database

  • Postgress

API Documentation

  • Asciidoctor

Infra

  • Nginx
  • Docker

Testing

  • Junit 5 (Unit)
  • TestContainers (Integration)
  • Gatling (Performance)

Observability

(metrics, logs, traces, continuous profiling)

  • Prometheus
  • Grafana
  • Loki
  • Tempo
  • Pyroscope
  • Postgres-exporter

Web Client

  • React
  • W3.CSS
  • Babel
  • Webpack
  • Axios

Deployment

Requirements

  • Kubernetes
  • Skaffold

Steps

  • Building
cd manifests
skaffold build
  • Starting the enviroment
cd manifests
skaffold run
  • Runing integration tests
cd test
.\mvnw surefire:test
  • Runing performance tests
cd .\performance\gatling\
.\mvnw gatling:test 
  • Generating the API Documentation
cd .\todo-svc
.\mvnw package

Local environment information

todo-spring-react's People

Contributors

andrescosta avatar

Stargazers

 avatar  avatar

Watchers

 avatar  avatar

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.