This project is a simple CV generator API, written on Go in microservice architecture. It is a simple REST API with gRPC services.
- user-service (Authorization, token validation, user info) (gRPC)
- main cv-service (List of CV's, CRUD for CV's) (gRPC)
- cv information-service (biography, name, position, location, photo, education, work experience and skills) (gRPC)
- file storage-service (minio) (Direct connection in services)
- cv PDF generator-service (cv PDF generator) (gRPC, RabbitMQ)
- HTML templates-service (templates for PDF) (gRPC)
- gateway-service (proxy for services from gRPC to REST) (REST API, WebSocket)
- swagger docs service (or container in gateway-service) (REST API)
- shared-network service (network for all services, and nginx configuration)
- AI service for additions to descriptions (gRPC)
- log system and visualization service
- analytics service in separate repository, which my friend will develop in PHP, Laravel (RabbitMQ)
- health check service (HTML page, gRPC, REST API)
- Microservice architecture
- Authorization and authentication
- Transactional database
- S3 file storage (minio)
- gRPC, RabbitMQ, REST API
- In CV information-service DI container is used (and cleaner code :)
Init (for create network):
make network
make up
docker network create cv-generator-network
docker-compose -f shared-network/docker-compose.yml up -d
cd user-service
docker-compose -f docker-compose.yml -f docker-compose.dev.yml up -d
cd ../gateway-service
docker-compose -f docker-compose.yml -f docker-compose.dev.yml up -d
and all the services will be started. (yep, in future i will add k8s support, because I know that this is a "crutch" solution).