Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/nikkhvat/gostat
Statistics Service - gostat. A microservice-based service, written in Golang and TypeScript.
https://github.com/nikkhvat/gostat
golang microservices nextjs typescript
Last synced: 2 months ago
JSON representation
Statistics Service - gostat. A microservice-based service, written in Golang and TypeScript.
- Host: GitHub
- URL: https://github.com/nikkhvat/gostat
- Owner: nikkhvat
- License: agpl-3.0
- Created: 2023-07-16T07:12:44.000Z (over 1 year ago)
- Default Branch: master
- Last Pushed: 2023-12-29T21:57:37.000Z (12 months ago)
- Last Synced: 2024-09-28T21:06:11.355Z (3 months ago)
- Topics: golang, microservices, nextjs, typescript
- Language: TypeScript
- Homepage: https://gostat.app
- Size: 3.25 MB
- Stars: 3
- Watchers: 0
- Forks: 3
- Open Issues: 8
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# GOStat - Open Source Statistics Service
**[link](https://gostat.app/)** | **[swagger](https://gostat.app/api/docs/)**
**Note**: This project is created to showcase my proficiency in frontend and backend development.
Welcome to GOStat, a cutting-edge microservice-based application designed to handle HTTP request authentication and statistics with finesse. This project comprises several key microservices, each contributing to its overall functionality and prowess:
- **api_service**: Serving as the gateway for HTTP requests, this microservice orchestrates communication with other components.
- **auth_service**: This microservice is your go-to for authentication tasks, ensuring secure access.
- **stat_service**: Providing robust statistical functionality, this microservice empowers your data-driven insights.
- **app_service**: Seamlessly manage your applications with this dedicated microservice.
- **mail_service**: Need to send emails? Look no further, as this microservice has you covered.
- **client_service**: The frontend, built with next.js, offers an engaging user interface.All of these microservices are crafted using GoLang. For synchronous communication, they utilize the powerful `gRPC` protocol, while for asynchronous messaging, they leverage `Kafka`. Additionally, they harness the capabilities of the `GORM` ORM library to interact with a `PostgreSQL` database, ensuring data integrity and efficiency.
![scheme](./doc/assets/scheme.jpg)
## Technologies
- **Langs**: GoLang / TypeScript
- **Web Server**: Gin
- **Front-end**: NextJs
- **In-Memory Data Store / Caching**: Redis
- **Database**: PostgreSQL
- **ORM**: GORM
- **Microservice** Communication:
- **gRPC**: for synchronous communication
- **Kafka**:for asynchronous communication
- **CI/CD**: GitHub Actions
- **Containerization**: Docker / Docker Compose## Project Goals
GOStat is developed with several key objectives in mind:
- **Demonstrate Expertise**: This project serves as a testament to my skills in both frontend and backend development, showcasing my ability to create a seamless and robust application.
- **Microservices Architecture**: By adopting a microservices architecture, GOStat aims to illustrate the advantages of modularity and scalability in modern application design.
- **Cutting-Edge Technologies**: GOStat leverages the latest technologies, such as GoLang, TypeScript, and Docker, to provide a state-of-the-art solution for handling HTTP requests and statistics.## Get Involved
You can actively contribute to the GOStat project by sharing your ideas and feedback. Feel free to propose new features, report issues, or suggest improvements by creating GitHub issues. I value your input and are excited to collaborate with the community to make GOStat even better.
## Prerequisites
To run GOStat on your local machine (macOS/Linux), you'll need to have the following tools and technologies installed:
Docker / Docker Compose
## Getting Started
To get GOStat up and running, follow these simple steps:
### Starting the Services
Open your terminal and run the following command to start the services:
```sh
make start
```### Stopping the Services
When you're done, stop the services by running the following command:
```sh
make stop
```With GOStat, you have a powerful and comprehensive solution at your fingertips, showcasing the synergy of frontend and backend development expertise. Enjoy exploring the world of GOStat!
Don't forget to show your support by starring this repository—it means a lot to me.
Special thanks to our talented [designer](https://www.behance.net/taisia_pro) for their exceptional design contributions.