Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/kevoneredone/learning_architecture_web
Master 1 web development course project : Learn web architecture through the evolution from monolithic to microservices using Go, Vue.js, PostgreSQL, Gin, Fastify, and Docker.
https://github.com/kevoneredone/learning_architecture_web
fastify golang nuxtjs postgresql
Last synced: about 2 months ago
JSON representation
Master 1 web development course project : Learn web architecture through the evolution from monolithic to microservices using Go, Vue.js, PostgreSQL, Gin, Fastify, and Docker.
- Host: GitHub
- URL: https://github.com/kevoneredone/learning_architecture_web
- Owner: KevOneRedOne
- Created: 2023-10-19T11:03:44.000Z (about 1 year ago)
- Default Branch: main
- Last Pushed: 2024-01-18T09:43:36.000Z (12 months ago)
- Last Synced: 2024-01-28T09:43:45.903Z (12 months ago)
- Topics: fastify, golang, nuxtjs, postgresql
- Language: Vue
- Homepage:
- Size: 301 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Web Architecture Learning Project
## Objective
The main objective of this project is to provide a practical learning experience about web architecture. It demonstrates the evolution of a web application's architecture, starting from a monolithic client/server 3-tier design and transitioning to a more scalable microservices-based architecture.
## Technologies Used
- **Backend**:
- Server: Go with the Gin framework for the API
- Additional API using Fastify for element searching- **Frontend**:
- Web client: Vue.js with Nuxt for server-side rendering- **Database**:
- PostgreSQL with GORM for the Object-Relational Mapping (ORM)## Project Evolution
### Transition from Monolith to Client/Server 3-Tier
In this initial phase, the project will focus on transforming the existing monolithic architecture into a structured client/server 3-tier architecture. The main components involved are:
- **Backend**: A Go server built with the Gin framework to handle API requests.
- **Frontend**: Vue.js with Nuxt for server-side rendering.
- **Database**: PostgreSQL with GORM used for ORM.### Transition from Client/Server 3-Tier to Microservices
The subsequent phase will involve transitioning from a client/server 3-tier architecture to a more scalable and flexible microservices architecture. Key changes in this phase include:
- **Dockerization**: Each service will be containerized using Docker, allowing for easier deployment and scaling.
- **Frontend**: The Vue.js with Nuxt setup for server-side rendering remains consistent.
- **Backend**: Go with the Gin framework for the primary API and Fastify for a secondary API dedicated to element searching.