O Diário de Trabalho é uma aplicação web simples e intuitiva para controlar os dias trabalhados e calcular os valores a receber para múltiplas pessoas. Os dados são guardados de forma segura numa base de dados online utilizando o Supabase, permitindo o acesso e a gestão a partir de qualquer lugar.
A aplicação foi construída como uma Single-Page Application (SPA), não necessitando de compilação ou dependências complexas. Basta abri-la num navegador.
- Gestão de Múltiplas Pessoas: Adicione e remova diferentes pessoas.
- Valores de Diária Personalizados: Defina um valor de diária individual para cada pessoa.
- Registo de Dias: Registe dias de trabalho completos ou meios dias com cálculo automático.
- Cálculo Automático: O montante total a receber é calculado em tempo real.
- Histórico e Limpeza: Funcionalidade "Limpar Pagos" para reiniciar facilmente os registos após um pagamento.
- Armazenamento Seguro e Persistente: Todos os dados são guardados no seu próprio projeto Supabase.
- Interface Moderna: Design responsivo construído com Tailwind CSS e alertas amigáveis com SweetAlert2.
- Frontend: HTML5, JavaScript (ES Modules)
- Estilização: Tailwind CSS
- Backend e Base de Dados: Supabase (PostgreSQL)
- Biblioteca de Alertas: SweetAlert2
Para executar esta aplicação, precisa apenas do ficheiro index.html e de um projeto Supabase.
- Vá a supabase.com, crie uma conta gratuita e um novo projeto.
- Após criar o projeto, navegue até Project Settings (ícone de engrenagem).
- Na secção API, encontre as seguintes informações de que vai precisar:
- Project URL
- Project API Keys → Chave anon public
- No menu de navegação do seu projeto Supabase, vá até ao SQL Editor.
- Clique em New query.
- Copie e cole o seguinte código SQL e clique em RUN para criar as tabelas e relações necessárias.
-- Cria a tabela para as pessoas
CREATE TABLE public.people (
id BIGINT GENERATED BY DEFAULT AS IDENTITY PRIMARY KEY,
name TEXT NOT NULL,
day_value NUMERIC NOT NULL,
created_at TIMESTAMPTZ DEFAULT NOW()
);
-- Cria a tabela para os registos de trabalho
CREATE TABLE public.entries (
id BIGINT GENERATED BY DEFAULT AS IDENTITY PRIMARY KEY,
person_id BIGINT REFERENCES public.people(id) ON DELETE CASCADE,
date DATE NOT NULL,
type TEXT NOT NULL, -- 'completo' ou 'meio'
value NUMERIC NOT NULL,
created_at TIMESTAMPTZ DEFAULT NOW()
);
Nota: A instrução ON DELETE CASCADE garante que, se uma pessoa for removida, todos os seus registos de trabalho também serão automaticamente eliminados.
- Descarregue o ficheiro index.html deste repositório.
- Abra o ficheiro index.html em qualquer navegador web moderno.
- Na primeira vez que abrir, será exibido um ecrã de configuração.
- Insira a Project URL e a Chave Anon do seu projeto Supabase.
- Clique em "Guardar e Conectar".
E pronto! A aplicação está agora conectada à sua base de dados e pronta a ser utilizada. As suas credenciais serão guardadas localmente no navegador para que não precise de as inserir novamente.
As credenciais do Supabase (URL e Chave) não estão guardadas no código. São inseridas pelo utilizador no primeiro uso e armazenadas apenas no localStorage do navegador. Isto garante que o código permanece seguro e pode ser partilhado livremente sem expor informações sensíveis.