O CV Manager é um projeto em desenvolvimento que visa gerenciar currículos de forma eficiente, utilizando tecnologias modernas como GraphQL, MongoDB e Go. Este repositório ainda está em fase inicial e pode conter funcionalidades incompletas ou sujeitas a alterações.
- Go: Linguagem de programação principal do projeto.
- GraphQL: Para criação de APIs eficientes e flexíveis.
- Documentação do GraphQL
- GQLGen: Ferramenta para gerar código GraphQL em Go.
- MongoDB: Banco de dados NoSQL para armazenamento de dados.
- Docker: Para containerização do ambiente de desenvolvimento.
docker-compose.yml: Configuração do serviço MongoDB.go.modego.sum: Gerenciamento de dependências do Go.server.go: Ponto de entrada principal do servidor.config/: Configurações do projeto.db/: Integração com o banco de dados MongoDB.generated/: Código gerado automaticamente pelo GQLGen.model/: Modelos de dados.resolvers/: Resolvers para as queries e mutations do GraphQL.schemas/: Definições do esquema GraphQL.
- Certifique-se de ter o Docker e o Docker Compose instalados.
- Suba o ambiente com o comando:
docker compose up
- Gere os esquemas GraphQL com o comando:
make generate
- Execute a aplicação com o comando:
make run
- O servidor estará disponível na porta configurada (padrão:
8080).
O projeto inclui um makefile com os seguintes comandos para facilitar o desenvolvimento:
-
make build:- Compila o servidor Go e gera o binário na pasta
bin/. - Útil para criar o executável do servidor.
- Compila o servidor Go e gera o binário na pasta
-
make run:- Compila o servidor (executa
make build) e o inicia com as variáveis de ambiente configuradas. - Útil para rodar o servidor localmente.
- Compila o servidor (executa
-
make generate:- Gera os esquemas GraphQL usando o
gqlgen. - Útil para atualizar os resolvers e esquemas GraphQL após alterações.
- Gera os esquemas GraphQL usando o
-
make clean:- Remove a pasta
bin/e limpa os binários gerados. - Útil para limpar o ambiente de desenvolvimento.
- Remove a pasta
O comando padrão é o make run, que compila e executa o servidor automaticamente.
Este projeto ainda não está finalizado. Algumas funcionalidades podem estar incompletas ou sujeitas a alterações.