Este projeto é um sistema de gerenciamento de produtos com autenticação de usuários. Os usuários podem criar uma conta, fazer login e gerenciar seus produtos (criar, visualizar, editar e excluir).
- .NET Core 8
- Entity Framework Core
- ASP.NET Core Identity
- JWT Authentication
- SQLite
- React
- React Router
- React Query
- Zustand (gerenciamento de estado)
- TailwindCSS
- ShadCN UI (componentes)
-
Clone o repositório:
git clone https://github.com/rogerapdev/ProductManagement.git cd ProductManagement -
String de conexão do banco de dados em
src/ProductManagement.API/appsettings.json:"ConnectionStrings": { "DefaultConnection": "Data Source=ProductManagement.db" }
-
Execute as migrações do banco de dados:
cd src/ProductManagement.API dotnet ef database update --project ../ProductManagement.Infrastructure/ProductManagement.Infrastructure.csproj -
Execute a API:
dotnet run
A API estará disponível em
https://localhost:5001.
-
Navegue até a pasta do frontend:
cd src/ProductManagement.Web -
Instale as dependências:
npm install
-
Configure a variável de ambiente para a URL da API:
# .env REACT_APP_API_URL=https://localhost:5001 -
Execute o aplicativo React:
npm start
O frontend estará disponível em
http://localhost:3000.
O backend segue uma arquitetura em camadas baseada em DDD (Domain-Driven Design):
- ProductManagement.API - Controladores da API, middleware, configuração
- ProductManagement.Application - Serviços de aplicação, DTOs, validadores
- ProductManagement.Domain - Entidades, objetos de valor, serviços de domínio
- ProductManagement.Infrastructure - Repositórios, contexto EF, migrações
O frontend segue uma estrutura baseada em componentes React:
- components/ - Componentes reutilizáveis da UI
- pages/ - Páginas/rotas da aplicação
- services/ - Serviços para comunicação com a API
- store/ - Gerenciamento de estado com Zustand
- lib/ - Utilitários e funções auxiliares
- Registro de usuário
- Login de usuário
- Proteção de rotas autenticadas
- Armazenamento seguro de token JWT
- Visualização de produtos do usuário
- Criação de novos produtos
- Edição de produtos existentes
- Exclusão de produtos
- Upload de imagens para produtos
- Ordenação de produtos por data ou preço
- ✅ Autenticação baseada em JWT com ASP.NET Core Identity
- ✅ API RESTful para gerenciamento de produtos
- ✅ Relacionamento de produtos com usuários
- ✅ Upload de imagens com validação de tipo de arquivo
- ✅ Banco de dados com Entity Framework Core
- ✅ Autenticação e sessão com armazenamento seguro de token
- ✅ Formulários de registro e login
- ✅ Dashboard para visualização de produtos
- ✅ Formulário para criação e edição de produtos
- ✅ Upload de imagens
- ✅ Filtro para ordenação de produtos
- ✅ React Query para requisições assíncronas
- ✅ Zustand para gerenciamento de estado
- ✅ UI com TailwindCSS e ShadCN