Plataforma para cadastro e gerenciamento de projetos freelance — conectando clientes e desenvolvedores de forma simples e eficiente.
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.
- ✅ 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
| 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) |
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
Um projeto no DevFreela pode ter os seguintes estados:
Criado → Em Andamento → Concluído
↘ Cancelado
- .NET 8 SDK
- SQL Server (ou SQL Server Express)
- Visual Studio 2022 ou VS Code
# 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.APIA API estará disponível em: https://localhost:7000
Documentação Swagger: https://localhost:7000/swagger
| 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 |
| 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) |
A API utiliza JWT Bearer Token. Para acessar endpoints protegidos:
- Faça login em
POST /api/users/login - Copie o token retornado
- Inclua no header das requisições:
Authorization: Bearer {seu_token}
Você pode testar pela interface do Swagger (/swagger) ou via ferramentas como:
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
Contribuições são bem-vindas! Siga os passos:
- Fork o repositório
- Crie uma branch:
git checkout -b feature/minha-feature - Commit suas alterações:
git commit -m 'feat: adiciona minha feature' - Push para a branch:
git push origin feature/minha-feature - Abra um Pull Request
Este projeto está sob a licença MIT. Veja o arquivo LICENSE para mais detalhes.
Feito com ☕ e muito código