Projeto Service Quote API desenvolvido com ASP.NET Core, utilizando serviços da AWS S3 e hospedagem e banco de dados da Azure
Introdução • Funcionalidades • Motivação • Instalação • Configuração • Estrutura do Projeto • TODO / Melhorias • Licença
Essa é uma API desenvolvida para o projeto Service Quote, usando .NET 8.0 com ASP.NET Core e Entity Framework Core, que permite criar e gerenciar clientes, produtos e cotações de serviços, emitindo arquivos em PDF para envio do orçamento consolidado ao cliente. A aplicação segue os princípios da Clean Architecture para facilitar melhor manutenção e possível escalabilidade do sistema, além de garantir a correta separação de responsabilidades.
O projeto está em produção usando os serviços da Azure, porém com acesso restrito devido ao free tier não ser tão generoso, pretendo disponibilizá-lo para maior acesso, mas enquanto isso você pode conferir uma demo hospedada no YouTube aqui.
- Criar cotações (orçamentos) de serviços
- Criar produtos e obter produtos cadastrados
- Criar clientes e obter clientes cadastrados
- Paginação de resultados de clientes e produtos
- Geração de PDF com o orçamento consolidado (um template do documento gerado pode ser visto aqui)
- Integração com o serviço S3 da Amazon para armazenar os documentos gerados
Meu grande objetivo com esse projeto foi criar algo que "tocasse" o mundo real e que resolvesse um problema que via diariamente, nesse caso, foi o gerenciamento de orçamentos para serviços de eletricista de um familiar, como ele fazia tudo manualmente, em papel, e por vezes a cotação de materiais utilizados, o contato do cliente e o valor do orçamento se perdia, desenvolvi esse sistema para ajudá-lo a organizar o seu trabalho. Além disso, serviu para aprender uma linguagem nova e conceitos e paradigmas que essa linguagem trás, como POO, SOLID e Clean Architecture.
-
Para instalar o projeto, você precisará ter o .NET 8.0 instalado na sua máquina. Opcionalmente você pode instalar o Docker com Docker Compose para rodar o serviço de banco de dados localmente. Da sua linha de comando:
# Clone este repositório $ git clone https://github.com/evans-costa/backend-servicequotes.git # Entre na pasta do repositório clonado $ cd backend-servicequotes
-
Restaure as dependências do projeto
# Restaure as depedências $ dotnet restore
-
Configure as variáveis de ambiente necessárias no arquivo
appsettings.Development.json
ousecrets.json
:// appsettings.Development.json { "ConnectionStrings": { "DefaultConnection": "Server=localhost,1433;Database=<your-database-name>;User Id=sa;Password=<your-password>;TrustServerCertificate=True;" }, "AWS": { "BucketName": "<your-bucket-name>", "ProfileName": "<your-profile-name>", "AccessKey": "<your-access-key-id>", "SecretKey": "<your-secret-key>", "Region": "<your-bucket-region>" } }
// secrets.json dotnet user-secrets init dotnet user-secrets set "ConnectionsStrings:DefaultConnection" "Server=localhost,1433;Database=<your-database-name>;User Id=sa;Password=<your-password>;TrustServerCertificate=True;" dotnet user-secrets set "AWS:BucketName" "<your-bucket-name>" dotnet user-secrets set "AWS:ProfileName" "<your-profile-name>" dotnet user-secrets set "AWS:AccessKey" "<your-access-key-id>" dotnet user-secrets set "AWS:SecretKey" "<your-secret-key>" dotnet user-secrets set "AWS:Region" "<your-bucket-region>"
📌 Nota:
Caso não tenha um usuário cadastrado na AWS para correta configuração dos perfis e resolução do usuário da AWS, por favor, siga a documentação do SDK para .NET nesse link. -
Se você está usando o Docker, rode o seguinte comando, não esquecendo de usar a mesma senha definida nas variáveis de ambiente no arquivo
docker-compose.yml
:# Suba o container do SQL Server $ docker compose up -d
📌 Nota:
Se você não estiver usando o Docker, precisará instalar e configurar o SQL Server Management disponível nesse link. -
Rode as migrações para criar o banco de dados e suas tabelas:
# Rode as migrações $ dotnet ef database update
-
Você agora está pronto para rodar o projeto, aperte F5 no teclado, caso esteja usando o Visual Studio 2022, ou use o comando:
# Rode o projeto $ dotnet watch run --launch-profile https --project src\ServiceQuotes.API\
Isso irá abrir a interface do Swagger no seu navegador, onde você poderá consultar e testar os endpoints da aplicação, bem como ver os DTO's usados e os exemplos de requisição e resposta. Como alternativa, você pode testar usando seu cliente API REST favorito como o Insomnia ou Postman.
- Criar endpoints para atualização e deleção de clientes, produtos e cotações
- Fazer autenticação do usuário
- Escrever testes para a aplicação (em andamento)
- Script para rodar as migrações
- Seed do banco de dados para propósitos de desenvolvimento
- Configurar CI/CD para rodar os testes
The MIT License (MIT) 2024 - Evandro Costa. Por favor, dê uma olhada no arquivo LICENSE para mais detalhes.