Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/danielgospodinow/catter

Love cats and modern software systems? Here's a cat facts application which has an architecture that fits modern needs
https://github.com/danielgospodinow/catter

authentication aws cats circuit-breaker docker go google jenkins kotlin kubernetes openid rabbitmq react reactive-programming rest saga-pattern software-architecture spring-boot tutorial webflux

Last synced: 4 months ago
JSON representation

Love cats and modern software systems? Here's a cat facts application which has an architecture that fits modern needs

Awesome Lists containing this project

README

        

# Catter

This project aims to be a good example of how modern software systems are made. It'll demonstrate all modern best practices in software development, which includes both the architecture and the used technologies.

### Architecture of the software system
![](./resources/catter-architecture.png?raw=true "Architecture")

### Topics which are (will be) covered
- Client application with React
- Facebook and Google authentication with OpenID Connect (OAuth 2.0)
- Microservice Architecture
- REST services with Kotlin Spring Boot and with Go
- Reactive programming with Spring Webflux
- Multiple AWS services (DynamoDB, EC2, ECR, etc)
- Containerization with Docker
- Deployment with Kubernetes
- CI/CD with Jenkins
- Swagger UI for the REST APIs with proper unit testing for high code coverage
- Service Discovery with Spring Eureka
- RabbitMQ/Kafka for communication between the services
- Saga (Ochestrated/Choreographed) and Circuit Breaker patterns implemented
- Terraform modules and Helm charts for automated infrastructure

### Tutorial
I plan to go through all the covered topics step-by-step in a Medium article.

Stay tuned. It'll be published [here](https://medium.com/@danielgospodinow).

### Screenshots

###### Home Screen
![](./resources/catter-home-screen.png?raw=true "Architecture")

###### Login Screen
![](./resources/catter-login-screen.png?raw=true "Architecture")

###### Register Screen
![](./resources/catter-register-screen.png?raw=true "Architecture")