Skip to content

lucasspicarelli/DevFrellaAPI

Repository files navigation

🚀 DevFreela

Plataforma para cadastro e gerenciamento de projetos freelance — conectando clientes e desenvolvedores de forma simples e eficiente.


📋 Sobre o Projeto

O DevFreela é uma aplicação back-end desenvolvida para gerenciar projetos de desenvolvimento freelance. A plataforma permite que clientes cadastrem projetos, desenvolvedores se candidatem, e ambos acompanhem o andamento até a conclusão.


✨ Funcionalidades

  • ✅ Cadastro e listagem de projetos
  • ✅ Cadastro de usuários (clientes e desenvolvedores)
  • ✅ Candidatura de desenvolvedores em projetos
  • ✅ Atualização de status do projeto (Criado → Em andamento → Concluído)
  • ✅ Comentários no projeto
  • ✅ Filtro de projetos por título

🛠️ Tecnologias

Camada Tecnologia
Linguagem C# / .NET
Banco de Dados SQL Server
ORM / Acesso a Dados Entity Framework Core / Dapper
API ASP.NET Core Web API
Autenticação JWT Bearer
Documentação Swagger / OpenAPI
Mensageria RabbitMQ (opcional)

🏗️ Arquitetura

O projeto segue os princípios de Clean Architecture, separando responsabilidades em camadas bem definidas:

DevFreela/
├── DevFreela.API              # Controllers, configurações, entrada da aplicação
├── DevFreela.Application      # Casos de uso, Commands, Queries, Handlers (CQRS)
├── DevFreela.Core             # Entidades, interfaces, enums (domínio puro)
└── DevFreela.Infrastructure   # Repositórios, DbContext, integrações externas

🚦 Status do Projeto

Um projeto no DevFreela pode ter os seguintes estados:

Criado → Em Andamento → Concluído
                     ↘ Cancelado

⚙️ Como Executar

Pré-requisitos

Passo a passo

# 1. Clone o repositório
git clone https://github.com/seu-usuario/devfreela.git
cd devfreela

# 2. Configure a connection string no appsettings.json
# "ConnectionStrings": {
#   "DevFreelaCs": "Server=.;Database=DevFreelaDB;Trusted_Connection=True;"
# }

# 3. Aplique as migrations
dotnet ef database update --project DevFreela.Infrastructure --startup-project DevFreela.API

# 4. Execute a aplicação
dotnet run --project DevFreela.API

A API estará disponível em: https://localhost:7000
Documentação Swagger: https://localhost:7000/swagger


📡 Endpoints Principais

Projetos

Método Rota Descrição
GET /api/projects Listar projetos (com filtro por título)
GET /api/projects/{id} Buscar projeto por ID
POST /api/projects Cadastrar novo projeto
PUT /api/projects/{id} Atualizar projeto
DELETE /api/projects/{id} Remover projeto
PUT /api/projects/{id}/start Iniciar projeto
PUT /api/projects/{id}/finish Concluir projeto
POST /api/projects/{id}/comments Adicionar comentário

Usuários

Método Rota Descrição
POST /api/users Cadastrar usuário
GET /api/users/{id} Buscar usuário por ID
PUT /api/users/{id} Atualizar usuário
DELETE /api/users/{id} Remover usuário
POST /api/users/login Autenticar usuário (retorna JWT)

🔐 Autenticação

A API utiliza JWT Bearer Token. Para acessar endpoints protegidos:

  1. Faça login em POST /api/users/login
  2. Copie o token retornado
  3. Inclua no header das requisições:
Authorization: Bearer {seu_token}

🧪 Testando a API

Você pode testar pela interface do Swagger (/swagger) ou via ferramentas como:


📂 Estrutura do Banco de Dados

As principais entidades são:

  • Project — título, descrição, status, valor, cliente, desenvolvedor
  • User — nome, e-mail, perfil (cliente/desenvolvedor)
  • ProjectComment — conteúdo, projeto vinculado, usuário autor

🤝 Contribuindo

Contribuições são bem-vindas! Siga os passos:

  1. Fork o repositório
  2. Crie uma branch: git checkout -b feature/minha-feature
  3. Commit suas alterações: git commit -m 'feat: adiciona minha feature'
  4. Push para a branch: git push origin feature/minha-feature
  5. Abra um Pull Request

📄 Licença

Este projeto está sob a licença MIT. Veja o arquivo LICENSE para mais detalhes.


Feito com ☕ e muito código

About

API em APS NET CORE

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages