Skip to content

Repository files navigation

Ponto

React Router Node.js TypeScript PostgreSQL Docker Lucide React

O Ponto é uma solução corporativa robusta para controle de jornada de trabalho e gestão de escalas em múltiplas equipes. Com uma interface moderna baseada em Glassmorphism, o sistema oferece uma experiência premium e intuitiva para colaboradores e gerentes.


✨ Funcionalidades Principais

  • ⏱️ Registro de Ponto Inteligente: Interface intuitiva com detecção automática de virada de dia e cálculo de saldo (extra/negativo) em tempo real. Suporte a múltiplos períodos e registro manual.
  • 📊 Histórico e Dashboard: Painel individual de estatísticas mensais com análise de saldo acumulado. Permite a edição e exclusão granular de batidas específicas, garantindo flexibilidade na correção de registros.
  • 📅 Escala Mensal Dinâmica: Sistema de planejamento de equipe com interface de calendário interativa. Permite alternar escalas de trabalho e folgas com Salvamento Automático, eliminando a necessidade de botões de confirmação.
  • 👤 Perfil Consolidado: Badges dinâmicos que mostram Cargo e Equipe. Personalização de Avatar via Base64 e Meta de Horas individualizada.
  • 🎨 UI/UX: Design consistente em todas as rotas (Histórico, Relatórios, Escala) com navegação temporal fixa e alinhada, evitando quebras de layout.
  • 🛡️ Painel de Gestão Avançado:
    • Criação e organização de equipes.
    • Reset de Senha: Administradores podem redefinir senhas de usuários diretamente pela interface.
    • Exclusão de Contas: Remoção permanente de usuários com limpeza automática de registros vinculados.
  • 🏢 Múltiplos Vínculos e Acesso Granular:
    • Multi-Equipes: Suporte estrutural para que o mesmo colaborador pertença a várias equipes de forma simultânea.
    • Cargos Independentes por Contexto: Um usuário pode ser Gerente na "Equipe A" e um Funcionário comum na "Equipe B". O sistema adequa as permissões dinamicamente.
    • Admin: Acesso irrestrito a todos os setores de forma unificada.
  • 🔐 Segurança e Hardening:
    • Senhas criptografadas com bcrypt.
    • Sessões protegidas com cookies HttpOnly e política SameSite: Strict.
    • Controle de acesso (RBAC) validando permissões de Admin vs Funcionário diretamente no servidor.
    • Proteção contra SQL Injection via consultas preparadas (Prepared Statements).

🛠️ Tech Stack

Categoria Tecnologia
Framework React Router v7 (Framework Mode)
Ambiente Node.js / Runtime compatível
Linguagem TypeScript
Banco de Dados PostgreSQL (pg)
Segurança Bcryptjs (Criptografia de Senhas) & Cookie Session storage
Ícones Lucide React

📂 Estrutura Arquitetural

├── app/
│   ├── components/        # Componentes UI de Layout e Feedback (Modal, DayInfo, etc.)
│   ├── domain/            # Modelagem de domínio e lógica de negócios pura (calculadoras, testes)
│   ├── routes/            # Configuração de rotas de página (Loaders/Actions de entrada)
│   ├── services/          # Camada de serviços e persistência do Postgres (db.server.ts, auth, etc.)
│   ├── styles/            # Folhas de estilo modularizadas (Vanilla CSS)
│   ├── utils/             # Lógica de utilitários gerais e calendarização do tempo
│   ├── views/             # Componentes visuais principais e painéis de controle (Dashboard, Escala, etc.)
│   ├── root.tsx           # Entrada principal da aplicação React Router v7
│   ├── routes.ts          # Registro e mapeamento de rotas da aplicação
│   └── types.ts           # Interfaces e definições de tipos TypeScript globais
├── data/                  # Backup local de segurança (desativado em produção)
├── public/                # Ativos e imagens estáticas
└── Dockerfile             # Configuração para deploy conteinerizado em produção

🔌 Padrão de Portas

Serviço Porta Variável no .env
Front 3000 FRONT_PORT
Postgres 3002 POSTGRES_PORT

O Ponto roda front e back no mesmo servidor (React Router), por isso não há porta separada para o back.

O docker-compose.yml não publica portas no host: o deploy é feito pelo Dokploy, que roteia o domínio direto para a porta 3000 do container web. As portas acima valem para rodar localmente.


🏁 Primeiros Passos

Instalação e Execução

  1. Instale as dependências

    npm install
  2. Inicie o Servidor de Desenvolvimento

    npm run dev
  3. Produção (Build)

    npm run build
    npm start

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages