feat: add full project - backend, frontend, docker, specs and configs

This commit is contained in:
MatheusAlves96 2026-04-20 23:59:45 -03:00
parent b77c7d5a01
commit e6cb06255b
24489 changed files with 61341 additions and 36 deletions

View file

@ -0,0 +1,36 @@
# Feature Specification: Cadastro Rico de Cliente (Perfil Completo no Registro)
**Feature Branch**: `012-register-rich-profile`
**Created**: 2026-04-14
**Status**: In Progress
## Contexto
A página `/cadastro` atualmente coleta apenas nome, email, senha e confirmação de senha. A feature 011 adicionou campos ricos ao model `ClientUser` (phone, whatsapp, cpf, birth_date, address_*) e ao painel admin, mas o fluxo de auto-registro do cliente (`/cadastro`) não foi atualizado. Esta feature expande o formulário público de cadastro para também permitir que o próprio cliente informe seus dados de contato (telefone, WhatsApp) e documento (CPF) já no ato do registro. Os campos de endereço e data de nascimento serão opcionais e disponíveis. O formulário mantém etapas lógicas para não sobrecarregar o usuário.
## User Stories
### US1 — Dados de contato no cadastro (P1)
**Given** usuário na página `/cadastro`, **When** preenche o formulário, **Then** pode opcionalmente informar telefone e WhatsApp além de nome/email/senha.
### US2 — CPF no cadastro (P1)
**Given** usuário na página `/cadastro`, **When** preenche o formulário, **Then** pode opcionalmente informar CPF com máscara automática.
### US3 — Dados de endereço no cadastro (P2)
**Given** usuário na página `/cadastro`, **When** expande seção de endereço (ou preenche naturalmente), **Then** pode informar logradouro, número, complemento, bairro, cidade, estado e CEP.
### US4 — Data de nascimento no cadastro (P2)
**Given** usuário na página `/cadastro`, **When** preenche seus dados pessoais, **Then** pode informar data de nascimento.
### US5 — Campos opcionais sem bloqueio (P1)
**Given** usuário preenchendo o cadastro, **When** não preenche campos opcionais, **Then** o cadastro é realizado normalmente sem erro.
## Acceptance Criteria
- `RegisterIn` schema em `auth.py` aceita os novos campos opcionais: `phone`, `whatsapp`, `cpf`, `birth_date`, `address_street`, `address_number`, `address_complement`, `address_neighborhood`, `address_city`, `address_state`, `address_zip`
- Endpoint `POST /auth/register` passa novos campos ao `ClientUser` ao criar
- `RegisterCredentials` em `types/auth.ts` expandido com campos opcionais
- `registerUser` em `services/auth.ts` passa os novos campos (exceto `confirmPassword`)
- `RegisterPage.tsx` expandida com seções: **Acesso** (nome, email, senha, confirmar senha), **Contato** (telefone, WhatsApp, CPF, data de nascimento), **Endereço** (logradouro, número, complemento, bairro, cidade, estado, CEP)
- Máscaras automáticas para CPF (`000.000.000-00`), telefone (`(00) 00000-0000`) e CEP (`00000-000`)
- Visual consistente com o design atual da `RegisterPage` (dark, `border-white/6`, `bg-[#0f1011]`)
- Seções de Contato e Endereço separadas visualmente mas acessíveis sem scroll excessivo