Plataforma que conecta doadores e receptores em um marketplace de economia circular. Qualquer pessoa ou empresa pode doar qualquer item para quem precisa.
EasyDonate é uma solução completa para facilitar doações entre pessoas, empresas e organizações. A plataforma permite que qualquer um doe itens que não usa mais para quem realmente precisa, criando uma economia circular sustentável.
- Cadastro de doações com fotos
- Escolha de modalidade de entrega
- Gestão de solicitações
- Histórico completo de doações
- Sistema de avaliações
- Busca inteligente de doações
- Filtros por localização e categoria
- Solicitação de itens específicos
- Wishlist de necessidades
- Mapa interativo
- Alimentos
- Roupas e Calçados
- Móveis e Eletrodomésticos
- Educação (livros, material escolar)
- Construção
- Brinquedos e Infantil
- Saúde (equipamentos)
- Dinheiro (PIX)
- Serviços (trabalho voluntário)
- Outros
.
├── Api.Gateway # Gateway de entrada
├── User.Api # Gestão de usuários
├── Auth.Api # Autenticação JWT
├── Donation.Api # Gestão de doações (em desenvolvimento)
├── Request.Api # Solicitações (planejado)
└── Chat.Api # Mensagens (planejado)
.
├── src/
│ ├── components/ # Componentes reutilizáveis
│ ├── services/ # Chamadas API
│ ├── models/ # Interfaces TypeScript
│ └── pages/ # Páginas da aplicação
- .NET 9
- PostgreSQL 18
- Entity Framework Core
- JWT Authentication
- Docker & Docker Compose
- AutoMapper
- PBKDF2 (hash de senhas)
- React 19
- TypeScript
- Vite
- Axios
- React Router (planejado)
- Docker
- Docker Compose
- Nginx
- Makefile (comandos úteis)
- Docker 20.10+
- Docker Compose 2.0+
- .NET SDK 9.0 (para desenvolvimento local)
- Node.js 22+ (para desenvolvimento local)
- Make (opcional, para usar comandos do Makefile)
git clone https://github.com/H0wZy/web.easydonate.git
cd web.easydonateUsando Make (recomendado):
make upUsando Docker Compose diretamente:
docker compose up -d- Frontend: http://localhost:3000
- Gateway API: http://localhost:5000
- User API: http://localhost:5290
Se você tem Make instalado:
make help # Lista todos os comandos disponíveis
make build # Build das imagens Docker
make up # Inicia todos os containers
make down # Para todos os containers
make restart # Reinicia todos os containers
make logs # Mostra logs de todos os serviços
make logs-frontend # Logs apenas do frontend
make logs-user # Logs apenas do User API
make clean # Remove containers, volumes e imagens
make ps # Lista status dos containers
make health # Verifica health dos serviços
make dev # Modo desenvolvimento (logs visíveis)Sem Make, use docker compose diretamente:
docker compose up -d
docker compose down
docker compose logs -f
docker compose psuser- Dados principais do usuáriodonor- Informações específicas de doadoresorganization- Informações de ONGs
donation- Dados das doaçõesdonation_image- Imagens das doaçõesdonation_category- Categorias
A API utiliza autenticação JWT. Para acessar endpoints protegidos:
- Faça login através do endpoint
/api/Auth/login - Receba o token na resposta
- Inclua o token no header das requisições:
Authorization: Bearer {seu_token_aqui}
- Expiração: 24 horas
- Algoritmo: HMAC SHA256
- Claims: IdUsuario, Email, UserType
GET /api/User/GetAllUsers
GET /api/User/GetUserById/{id}
GET /api/User/GetUserByUsername/{username}
GET /api/User/GetUserByEmail/{email}
POST /api/User/CreateUser
PATCH /api/User/UpdateUserById/{id}
DELETE /api/User/DeleteUserById/{id}
PATCH /api/User/DisableUserById/{id}
POST /api/Auth/login
POST /api/Auth/refresh
POST /api/Auth/logout
cd backend/src/User.Api
dotnet restore
dotnet runcd frontend
npm install
npm run dev- Senhas criptografadas com PBKDF2 (10.000 iterações)
- Tokens JWT com expiração
- Validação dupla (cliente e servidor)
- CORS configurado
- HTTPS obrigatório em produção
- Rate limiting (planejado)
- Clean Architecture
- Repository Pattern
- Dependency Injection
- DTOs para transferência de dados
- AutoMapper para mapeamento
- Response Models padronizados
- Componentes funcionais
- TypeScript strict mode
- Axios para chamadas HTTP
- Services pattern
- Interfaces para tipagem
- User.Api funcionando
- Estrutura do projeto
- Docker compose configurado
- Auth.Api completo
- Donation.Api básico
- Frontend: Login/Cadastro
- Frontend: Criar/Listar doações
- Request.Api
- Sistema de solicitações
- Mapa básico
- Chat ou integração WhatsApp
- Sistema de avaliações
- Wishlist
- Notificações
- Dashboard analytics
- App mobile
- Planos premium
- Match automático IA
- API pública
- Fork o projeto
- Crie uma branch para sua feature (
git checkout -b feature/MinhaFeature) - Commit suas mudanças (
git commit -m 'Adiciona MinhaFeature') - Push para a branch (
git push origin feature/MinhaFeature) - Abra um Pull Request
Este projeto está sob a licença MIT.
Para dúvidas ou sugestões, abra uma issue no GitHub.
EasyDonate - Conectando quem pode doar com quem precisa receber 💚