Aplicação de controle financeiro com tema Dark/Luxo e Light/Contrast, AI Advisor (Gemini), autenticação JWT, Prisma + MySQL, React + Vite e Tailwind.
- Frontend: React (Vite), TypeScript, Tailwind v4
- Backend: Node.js (Express), TypeScript
- Banco: MySQL (XAMPP)
- ORM: Prisma 5.15
- AI: Google Generative AI (Gemini)
- Node.js 18+
- XAMPP com MySQL ativo em
localhost:3306 .envnoservercom:DATABASE_URL="mysql://root:@localhost:3306/finance_db"JWT_SECRET="segredo_super_seguro"GEMINI_API_KEY="SUA_CHAVE_AQUI"
npm run start-all— instala dependências, prepara Prisma e inicia front + backnpm run bootstrap— instala dependências (servereclient)npm run setup— aplica schema e gera Prisma Clientnpm run dev— executaservereclientem paralelonpm run build— build doservereclientnpm run start— inicia apenas o backend (produção)npm run preview— preview do frontend
- Inicie MySQL pelo XAMPP
- Na raiz
finance-flow-app, rodenpm run start-all - Acesse
http://localhost:5173/ - Crie conta ou faça login; Dashboard carrega transações do banco.
- Use o botão “Menu” para abrir Sidebar e “Conselhos da AI” para o advisor.
- Autenticação (
/api/auth)POST /register{ name, email, password }POST /login{ email, password }
- Transações (
/api)GET /transactions(JWT)POST /transactions(JWT)DELETE /transactions/reset(JWT)
- AI Advisor (
/api/ai-advisor) — envia transações e recebe dicas (usa fallback se a AI falhar)
- Dark: gradiente preto→vermelho escuro, glassmorphism, acentos dourados.
- Light: gradiente claro, sombras mais fortes, texto preto.
- Mobile: Navbar sticky, Sidebar como drawer com overlay, gráficos com altura adaptável.
client/src/components— Navbar, Sidebar, AIModal, SummaryCards, etc.client/src/pages— Login, Register, Dashboardserver/src— rotas, controllers, middleware, prisma client
- JWT guard no backend.
- Sem exposição de segredos no cliente.
- Ajuste
GEMINI_API_KEYno.envdoserverpara ativar a AI. - O Prisma está fixado na versão 5.15 por compatibilidade.