{"owner":"ivangfr","github":"https://github.com/ivangfr","claimed":false,"inventory":[],"indexed":[{"repo":"ivangfr/springboot-react-keycloak","github":"https://github.com/ivangfr/springboot-react-keycloak","description":"The goal of this project is to secure movies-app using Keycloak (with PKCE). movies-app consists of two applications: one is a Spring Boot Rest API called movies-api and another is a React application called movies-ui.","language":"JavaScript","stars":467,"topics":["spring-boot","keycloak","semantic-ui-react","pkce","dicebear","java","mongodb","docker","omdb-api","springdoc-openapi"],"license":null,"category":"deployment-docker-iac"},{"repo":"ivangfr/springboot-react-social-login","github":"https://github.com/ivangfr/springboot-react-social-login","description":"The goal of this project is to implement an application called movie-app to manage movies. For it, we will implement a back-end Spring Boot application called movie-api and a front-end React application called movie-ui. Additionally, we will use OAuth2 (Social Login) to secure both applications.","language":"Java","stars":206,"topics":["spring-boot","social-login","java","javascript","docker","jsonwebtoken","springdoc-openapi","github-oauth2","google-oauth2","spring-security"],"license":"MIT","category":"deployment-docker-iac"},{"repo":"ivangfr/keycloak-clustered","github":"https://github.com/ivangfr/keycloak-clustered","description":"Keycloak-Clustered extends quay.io/keycloak/keycloak official Keycloak Docker image by adding JDBC_PING discovery protocol.","language":"Shell","stars":198,"topics":["keycloak","docker","mariadb","mysql","postgresql","jdbc-ping","mssqlserver","vagrant","virtualbox","keycloak-cluster"],"license":null,"category":"databases-storage"},{"repo":"ivangfr/springboot-react-jwt-token","github":"https://github.com/ivangfr/springboot-react-jwt-token","description":"The goal of this project is to implement an application called order-app to manage orders. For it, we will implement a back-end Spring Boot application called order-api and a front-end React application called order-ui. Besides, we will use JWT Authentication to secure both applications.","language":"Java","stars":187,"topics":["spring-boot","docker","java","springdoc-openapi","jsonwebtoken","javascript","jwt-authentication","spring-security","postgresql","spring-data-jpa"],"license":"MIT","category":"databases-storage"},{"repo":"ivangfr/springboot-keycloak-openldap","github":"https://github.com/ivangfr/springboot-keycloak-openldap","description":"The goal of this project is to create a simple Spring Boot REST API, called simple-service, and secure it with Keycloak. Furthermore, the API users will be loaded into Keycloak from OpenLDAP server.","language":"Java","stars":171,"topics":["spring-boot","keycloak","openldap","graalvm","oauth2-resource-server","docker","java","phpldapadmin","springdoc-openapi","ldap"],"license":"MIT","category":"deployment-docker-iac"},{"repo":"ivangfr/graalvm-quarkus-micronaut-springboot","github":"https://github.com/ivangfr/graalvm-quarkus-micronaut-springboot","description":"The goal of this project is to compare some Java Microservice Frameworks like: Quarkus, Micronaut and Spring Boot. For it, we will implement applications using those frameworks, build their JVM and Native Docker images and measure start-up times, memory footprint, etc.","language":"Shell","stars":142,"topics":["graalvm","quarkus","micronaut","spring-boot","java","mysql","kafka","elasticsearch","docker","cadvisor"],"license":"MIT","category":"deployment-docker-iac"},{"repo":"ivangfr/springboot-kafka-connect-jdbc-streams","github":"https://github.com/ivangfr/springboot-kafka-connect-jdbc-streams","description":"Project goal: Explore Kafka, Kafka Connect, and Kafka Streams. Components: store-api: Inserts/updates MySQL records. Source Connectors: Monitor MySQL changes, push messages to Kafka. Sink Connectors: Listen to Kafka, insert/update Elasticsearch docs. store-streams: Listens to Kafka, processes with Kafka Streams, pushes new messages to Kafka.","language":"Java","stars":125,"topics":["spring-boot","kafka","kafka-connect","kafka-streams","mysql","elasticsearch","spring-cloud-stream","schema-registry","avro","json"],"license":null,"category":"data-pipelines"},{"repo":"ivangfr/springboot-react-basic-auth","github":"https://github.com/ivangfr/springboot-react-basic-auth","description":"The goal of this project is to implement an application called book-app to manage books. For it, we will implement a back-end Spring Boot application called book-api and a front-end React application called book-ui. Besides, we will use Basic Authentication to secure both applications.","language":"JavaScript","stars":117,"topics":["spring-boot","basic-authentication","docker","java","javascript","npm","springdoc-openapi","spring-security","postgresql","spring-data-jpa"],"license":"MIT","category":"databases-storage"},{"repo":"ivangfr/springboot-kafka-connect-debezium-ksqldb","github":"https://github.com/ivangfr/springboot-kafka-connect-debezium-ksqldb","description":"Experiment with Kafka, Debezium, and ksqlDB. research-service: Performs MySQL record manipulation. Source Connectors: Monitor MySQL changes, push messages to Kafka. Sink Connectors and kafka-research-consumer: Listen to Kafka, insert/update Elasticsearch. ksqlDB-Server: Listens to Kafka, performs joins, and pushes new messages to new Kafka topics.","language":"Java","stars":84,"topics":["spring-boot","kafka","debezium","kafka-connect","schema-registry","mysql","elasticsearch","avro","confluent","ksqldb"],"license":null,"category":"data-pipelines"},{"repo":"ivangfr/springboot-elk-prometheus-grafana","github":"https://github.com/ivangfr/springboot-elk-prometheus-grafana","description":"The goal of this project is to implement a Spring Boot application, called movies-api, and use Filebeat & ELK Stack (Elasticsearch, Logstash and Kibana) to collect and visualize application's logs and Prometheus & Grafana to monitor application's metrics.","language":"Java","stars":83,"topics":["spring-boot","prometheus","grafana","mysql","elasticsearch","filebeat","kibana","logstash","docker","elk"],"license":null,"category":"analytics"},{"repo":"ivangfr/springboot-kafka-websocket","github":"https://github.com/ivangfr/springboot-kafka-websocket","description":"The goal of this project is to implement two Spring Boot applications: bitcoin-api and bitcoin-client. The bitcoin-api application simulates BTC price changes, while the bitcoin-client application listens to these changes and updates a real-time UI. The bitcoin-client UI is secured using Basic Authentication.","language":"Java","stars":70,"topics":["spring-boot","kafka","websocket","thymeleaf","mysql","java","docker","basic-authentication","spring-cloud-stream","springdoc-openapi"],"license":"MIT","category":"data-pipelines"},{"repo":"ivangfr/spring-data-jpa-r2dbc-mysql-stream-million-records","github":"https://github.com/ivangfr/spring-data-jpa-r2dbc-mysql-stream-million-records","description":"In this project, we will implement two Spring Boot Java Web application called streamer-data-jpa and streamer-data-r2dbc. They both will fetch 1 million of customer records from MySQL and stream them to Kafka. The main goal is to compare the application's performance and resource utilization.","language":"Java","stars":40,"topics":["spring-boot","kafka","mysql","docker","java","spring-cloud-stream","jconsole","kafdrop","spring-data-jpa","spring-data-r2dbc"],"license":null,"category":"databases-storage"},{"repo":"ivangfr/spring-data-jpa-relationships","github":"https://github.com/ivangfr/spring-data-jpa-relationships","description":"The goal of this project is to study the JPA relationships: one-to-one, one-to-many / many-to-one, and many-to-many.","language":"Java","stars":39,"topics":["many-to-many","many-to-one","one-to-many","one-to-one","spring-boot","spring-data-jpa","java","mapstruct","postgresql","springdoc-openapi"],"license":"MIT","category":"databases-storage"},{"repo":"ivangfr/springboot-keycloak-mongodb-testcontainers","github":"https://github.com/ivangfr/springboot-keycloak-mongodb-testcontainers","description":"The goals of this project are to: 1) Create a Spring Boot application that manages books, called book-service; 2) Use Keycloak as OpenID Connect provider; 3) Test using Testcontainers; 4) Explore the utilities and annotations that Spring Boot provides for testing applications.","language":"Java","stars":39,"topics":["spring-boot","mongodb","keycloak","unit-testing","integration-testing","testcontainers","java","docker","springdoc-openapi","spring-security"],"license":null,"category":"deployment-docker-iac"},{"repo":"ivangfr/springboot-kong-keycloak","github":"https://github.com/ivangfr/springboot-kong-keycloak","description":"Goal: create a Spring Boot app called book-service accessible only through the Kong API gateway. In Kong, the kong-oidc plugin will be installed, enabling communication between Kong and Keycloak. This setup ensures that when Kong receives a request for book-service, it validates the request in conjunction with Keycloak to ensure its authenticity.","language":"Shell","stars":38,"topics":["spring-boot","kong","keycloak","kong-oidc","java","docker","mongodb","mysql","postgresql","spring-data-mongodb"],"license":null,"category":"databases-storage"},{"repo":"ivangfr/axon-springboot-websocket","github":"https://github.com/ivangfr/axon-springboot-websocket","description":"The goal is to play with Axon. We implemented a food-ordering app that consists of 3 Spring Boot apps: customer-, restaurant-, and food-ordering-service. These services were implemented with CQRS and Event Sourcing using the Axon Framework. The services are connected to axon-server, which serves as the Event Store and Message Routing solution.","language":"Java","stars":36,"topics":["axon","spring-boot","cqrs","event-sourcing","websocket","docker","java","thymeleaf","axon-server","mongodb"],"license":"MIT","category":"networking-infra"},{"repo":"ivangfr/spring-webflux-reactive-databases","github":"https://github.com/ivangfr/spring-webflux-reactive-databases","description":"The goal of this project is to play with Spring WebFlux on client and server side. For it, we will implement some Spring Boot Java Web applications, product-api, customer-api, order-api and client-shell, and use reactive NoSQL database like Cassandra, MongoDB, Postgres and MySQL.","language":"Java","stars":31,"topics":["spring-boot","cassandra","mongodb","spring-shell","java","mysql","postgresql","docker","springdoc-openapi","spring-data-cassandra-reactive"],"license":null,"category":"databases-storage"},{"repo":"ivangfr/springboot-graphql-databases","github":"https://github.com/ivangfr/springboot-graphql-databases","description":"The goal of this project is to explore GraphQL. For it, we will implement two microservices: author-book-api and book-review-api.","language":"Java","stars":28,"topics":["spring-boot","graphql","mysql","mongodb","java","docker","springdoc-openapi","spring-cloud-openfeign","zipkin","spring-data-jpa"],"license":null,"category":"deployment-docker-iac"},{"repo":"ivangfr/spring-cloud-stream-event-sourcing-testcontainers","github":"https://github.com/ivangfr/spring-cloud-stream-event-sourcing-testcontainers","description":"Goal: create a Spring Boot application that handles users using Event Sourcing. So, whenever a user is created, updated, or deleted, an event informing this change is sent to Kafka. Also, we will implement another application that listens to those events and saves them in Cassandra. Finally, we will use Testcontainers for end-to-end testing.","language":"Java","stars":27,"topics":["spring-boot","kafka","mysql","cassandra","spring-cloud-stream","schema-registry","avro","json","testcontainers","docker"],"license":"MIT","category":"deployment-docker-iac"},{"repo":"ivangfr/spring-cloud-stream-event-routing-cloudevents","github":"https://github.com/ivangfr/spring-cloud-stream-event-routing-cloudevents","description":"The goal of this project is to play with Spring Cloud Stream Event Routing and CloudEvents. For it, we will implement a producer and consumer of news & alert events.","language":"Java","stars":25,"topics":["spring-boot","cloudevents","spring-cloud-stream","event-routing","kafka","java","kafdrop","graalvm","native","spring-webflux"],"license":null,"category":"data-pipelines"},{"repo":"ivangfr/springboot-rsocket-webflux-aop","github":"https://github.com/ivangfr/springboot-rsocket-webflux-aop","description":"The goal of this project is to play with RSocket protocol. To do this, we will implement three Spring Boot Java applications: movie-server, movie-client-shell and movie-client-ui. For storage, the reactive NoSQL database MongoDB is used. All streaming of movie events and logging is handled by AOP (Aspect Oriented Programming).","language":"Java","stars":24,"topics":["spring-boot","rsocket","mongodb","websocket","docker","java","spring-shell","thymeleaf","semantic-ui","spring-data-mongodb-reactive"],"license":null,"category":"networking-infra"},{"repo":"ivangfr/spring-boot-nginx-keycloak-cluster","github":"https://github.com/ivangfr/spring-boot-nginx-keycloak-cluster","description":"The goal of this project is to use Nginx as a reverse proxy and load balancer for a Keycloak cluster with two instances and a Spring Boot application, called simple-service, also with two instances. The simple-service app will use Keycloak for IAM.","language":"Java","stars":22,"topics":["docker","java","keycloak","nginx","spring-boot","oauth2-resource-server","postgresql","spring-security","spring-web-mvc"],"license":"MIT","category":"databases-storage"},{"repo":"ivangfr/spring-boot-user-pass-auth-one-time-token-login","github":"https://github.com/ivangfr/spring-boot-user-pass-auth-one-time-token-login","description":"The goal of this project is to create a Spring Boot application called movies-app that allows users to log in using Username/Password Authentication and One-Time Token Login","language":"Java","stars":21,"topics":["docker","java","java-mail-sender","mailpit","one-time-token","postgresql","spring-boot","spring-data-jpa","spring-security","spring-web-mvc"],"license":null,"category":"databases-storage"},{"repo":"ivangfr/spring-cloud-stream-kafka-multi-topics","github":"https://github.com/ivangfr/spring-cloud-stream-kafka-multi-topics","description":"The goal of this project is to create two applications: one as a Spring Boot producer and the other as a Spring Boot consumer. We'll be using Spring for Apache Kafka and Spring Cloud Stream.","language":"Java","stars":21,"topics":["spring-boot","spring-kafka","spring-cloud-stream","docker","kafdrop","kafka","java","jib","spring-webflux"],"license":null,"category":"data-pipelines"},{"repo":"ivangfr/spring-boot-grpc-client-server","github":"https://github.com/ivangfr/spring-boot-grpc-client-server","description":"The goal of this project is to implement two Spring Boot applications using gRPC: the server, called movie-grpc-server, and the shell client, named movie-grpc-client.","language":"Java","stars":20,"topics":["client-server","grpc","java","postgresql","protocol-buffers","spring-boot","spring-web-mvc","sprind-data-jpa","spring-grpc"],"license":"MIT","category":"databases-storage"},{"repo":"ivangfr/spring-kafka-de-serialization-types","github":"https://github.com/ivangfr/spring-kafka-de-serialization-types","description":"The goal is to play with Spring Kafka. We've implemented 5 examples of producer and consumer services that exchange messages through Kafka using different types of serialization and approaches.","language":"Java","stars":18,"topics":["spring-boot","spring-kafka","json","avro","schema-registry","kafka","docker","java","spring-web-mvc"],"license":null,"category":"data-pipelines"},{"repo":"ivangfr/springboot-kong-plugins","github":"https://github.com/ivangfr/springboot-kong-plugins","description":"The goal of this project is to create a simple Spring Boot REST API and secure it with Kong using the LDAP Authentication and Basic Authentication plugins. Besides, we will explore more plugins that Kong offers, such as the Rate Limiting and Prometheus plugins.","language":"Shell","stars":16,"topics":["spring-boot","kong","openldap","java","docker","ldap","phpldapadmin","postgresql","kong-plugin","basic-authentication"],"license":null,"category":"databases-storage"},{"repo":"ivangfr/springboot-elasticsearch-thymeleaf","github":"https://github.com/ivangfr/springboot-elasticsearch-thymeleaf","description":"The goal of this project is to implement an application called product-app. It consists of two Spring Boot services: product-api (backend) and product-ui (frontend). Data will be stored in Elasticsearch","language":"Java","stars":16,"topics":["spring-boot","elasticsearch","thymeleaf","http-interface","java","spring-data-elasticsearch","springdoc-openapi","spring-web-mvc"],"license":"MIT","category":"data-pipelines"},{"repo":"ivangfr/okta-springboot-react","github":"https://github.com/ivangfr/okta-springboot-react","description":"The goal of this project is to implement an application where a user can manage (create/read/update/delete) jobs. For it, we will create: a backend Restful API called jobs-api and a frontend user interface called jobs-ui. Furthermore, we will use Okta to secure the complete application.","language":"JavaScript","stars":14,"topics":["spring-boot","okta","java","javascript","materializecss","docker","elasticsearch","springdoc-openapi","spring-data-elasticsearch","okta-spring-boot"],"license":null,"category":"deployment-docker-iac"},{"repo":"ivangfr/spring-boot-nginx-websocket-rabbitmq-kafka","github":"https://github.com/ivangfr/spring-boot-nginx-websocket-rabbitmq-kafka","description":"This project shows how to implement an interactive news broadcasting app. A user can post news using a REST API, and it gets sent out to users instantly through a live WebSocket connection. Users can react by liking or disliking the news, and the app keeps track of all those reactions to show the total likes and dislikes.","language":"HTML","stars":10,"topics":["docker","java","kafka","nginx","postgresql","rabbitmq","spring-boot","spring-cloud-stream","spring-data-jpa","spring-web-mvc"],"license":"MIT","category":"data-pipelines"}],"how_to_buy":"GET /r/ivangfr/<repo> (Accept: application/json) for any listed repo here: tree, README, price and the checkout to pay (x402; rehearse first at its test twin, simulated money). Repos under 'indexed' are free: clone them from GitHub."}