Sistema web interno para planejamento de producao, importacao de estoque via CSV, matriz de produtividade e acompanhamento de programado x realizado.
backend/
server.js
db.js
routes/
services/
package.json
.env.example
frontend/
index.html
src/
main.js
api.js
styles.css
pages/
components/
assets/
database/
001_schema.sql
002_indexes.sql
003_seed_optional.sql
-- database/001_schema.sql
-- database/002_indexes.sql
-- database/003_seed_optional.sql opcional
O arquivo 003_seed_optional.sql cria apenas um registro de produtividade de exemplo para testar a simulacao.
cd backend
npm install
copy .env.example .env
Preencha backend/.env:
PORT=3000
DATABASE_URL=postgresql://USER:PASSWORD@HOST/neondb?sslmode=require
ADMIN_PASSWORD=planacofer26
JWT_SECRET=troque-este-segredo
SESSION_TTL_HOURS=12
Em producao, prefira usar ADMIN_PASSWORD_HASH com bcrypt e remova ADMIN_PASSWORD.
cd backend
npm run dev
Acesse:
http://localhost:3000
O backend serve o frontend estatico automaticamente.
A senha inicial vem de ADMIN_PASSWORD. O valor inicial sugerido e:
planacofer26
A senha nao fica no frontend. O login chama /api/auth/login, recebe um token JWT e salva a sessao no navegador.
Importar CSV na topbar.Durante a importacao o sistema:
import_history com status processing.stock_snapshot dentro de transacao.success, total de linhas e data.error e a mensagem.Coloque a imagem em:
frontend/assets/logo-acofer.png
Se o arquivo nao existir, o sistema mostra um fallback textual Aco-Fer.
Para publicar em acofer.catrion.com.br, configure um servidor Node para rodar o backend e aponte o dominio para ele. Mantenha DATABASE_URL, JWT_SECRET e senha/hash apenas em variaveis de ambiente no servidor.