Uma plataforma completa de gerenciamento de projetos freelancer desenvolvida com ASP.NET Core, criado para consolidar os aprendizados adquiridos na trilha do Luiz Dev.
O DevFreela é uma API robusta para gerenciamento de projetos freelancer, permitindo que clientes publiquem projetos e freelancers possam se candidatar e executá-los. O sistema oferece funcionalidades completas para o ciclo de vida de projetos de freelance.
-
Gerenciamento de Usuários
- Cadastro e autenticação de clientes e freelancers
- Perfis detalhados com habilidades e experiências
- Sistema de avaliações e feedback
-
Gestão de Projetos
- Criação e publicação de projetos
- Sistema de propostas e candidaturas
- Acompanhamento do progresso do projeto
- Marcos e entregas
-
Sistema de Pagamentos
- Integração com gateway de pagamento
- Controle de valores e comissões
- Histórico de transações
-
Comunicação
- Sistema de comentários nos projetos
- Notificações em tempo real
- Chat entre cliente e freelancer
- ASP.NET Core 6.0 - Framework web
- Entity Framework Core - ORM para acesso a dados
- SQL Server - Banco de dados principal
- AutoMapper - Mapeamento de objetos
- FluentValidation - Validação de dados
- JWT - Autenticação e autorização
- Swagger/OpenAPI - Documentação da API
- Clean Architecture - Arquitetura limpa e desacoplada
- CQRS - Command Query Responsibility Segregation
- Repository Pattern - Padrão para acesso a dados
- Dependency Injection - Injeção de dependência
- Unit of Work - Padrão para controle transacional
DevFreela/
├── src/
│ ├── DevFreela.API/ # Camada de apresentação (Controllers, Middlewares)
│ ├── DevFreela.Application/ # Camada de aplicação (Services, DTOs, Commands, Queries)
│ ├── DevFreela.Core/ # Camada de domínio (Entities, Interfaces, Enums)
│ └── DevFreela.Infrastructure/ # Camada de infraestrutura (Data, External Services)
├── tests/
│ ├── DevFreela.UnitTests/ # Testes unitários
│ └── DevFreela.IntegrationTests/ # Testes de integração
└── docs/ # Documentação adicional
Antes de executar o projeto, certifique-se de ter instalado:
git clone https://github.com/luanheuripedes/DevFreela.git
cd DevFreela# Navegue até o projeto da API
cd src/DevFreela.API
# Execute as migrations
dotnet ef database update{
"ConnectionStrings": {
"DevFreelaCs": "Server=localhost;Database=DevFreela;Trusted_Connection=true;"
},
"Jwt": {
"Key": "SUA_CHAVE_SECRETA_AQUI",
"Issuer": "DevFreela",
"Audience": "DevFreela-Users"
}
}dotnet runA API estará disponível em https://localhost:7000 ou http://localhost:5000
Após executar o projeto, acesse a documentação interativa do Swagger:
- Swagger UI:
https://localhost:7000/swagger
POST /api/auth/login- Login de usuárioPOST /api/users- Cadastro de usuário
GET /api/projects- Listar projetosPOST /api/projects- Criar projetoGET /api/projects/{id}- Obter projeto por IDPUT /api/projects/{id}- Atualizar projetoDELETE /api/projects/{id}- Deletar projeto
POST /api/projects/{id}/comments- Adicionar comentárioGET /api/projects/{id}/comments- Listar comentários do projeto
dotnet test tests/DevFreela.UnitTests/dotnet test tests/DevFreela.IntegrationTests/dotnet test --collect:"XPlat Code Coverage"# Exemplo de Dockerfile
FROM mcr.microsoft.com/dotnet/aspnet:6.0 AS base
WORKDIR /app
EXPOSE 80
EXPOSE 443
FROM mcr.microsoft.com/dotnet/sdk:6.0 AS build
WORKDIR /src
COPY ["src/DevFreela.API/DevFreela.API.csproj", "DevFreela.API/"]
RUN dotnet restore "DevFreela.API/DevFreela.API.csproj"
COPY . .
WORKDIR "/src/DevFreela.API"
RUN dotnet build "DevFreela.API.csproj" -c Release -o /app/build
FROM build AS publish
RUN dotnet publish "DevFreela.API.csproj" -c Release -o /app/publish
FROM base AS final
WORKDIR /app
COPY --from=publish /app/publish .
ENTRYPOINT ["dotnet", "DevFreela.API.dll"]- DevFreelaAngular - Frontend em Angular
- DevFreelaMicrosservico - Microsserviço de pagamentos
Contribuições são sempre bem-vindas! Para contribuir:
- Faça um fork do projeto
- Crie uma branch para sua feature (
git checkout -b feature/AmazingFeature) - Commit suas mudanças (
git commit -m 'Add some AmazingFeature') - Push para a branch (
git push origin feature/AmazingFeature) - Abra um Pull Request
Este projeto está sob a licença MIT. Veja o arquivo LICENSE para mais detalhes.
Luan Heuripedes
- LinkedIn: /in/luan-heuripedes
- GitHub: @luanheuripedes
Se você tiver alguma dúvida ou precisar de ajuda, sinta-se à vontade para:
- Abrir uma issue
- Entrar em contato através do LinkedIn
Projeto desenvolvido durante a formação ASP.NET Core, aplicando conceitos modernos de desenvolvimento web e arquitetura de software.