Lalabase
Tickets, Doku, Zeiterfassung und Kundengespräche an einem Ort, durchsuchbar per KI. Für Softwarefirmen mit Kundenprojekten. Open Source: auf deinem eigenen Server oder in unserer Cloud in Deutschland.
Translation pending
Management of classes, workshops and firings of the ceramics studio.
AI translation
Gestão de turmas, oficinas e queimas do ateliê de cerâmica.
BusinessTypeScript · CSSGitHub @diegowbrasilOnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
No updates detected yet. GitHub releases will appear here.
Owners of public repositories under a personal GitHub account can sign in to verify ownership and manage the introduction themselves. No administrator approval is needed.
Sign in, generate a verification file, and commit it to this repository’s default branch within 30 minutes. Files on other branches or forks do not count. Then check the file below to manage the project without administrator approval. Keep the file to retain your access.
If needed, you will go to sign-in. After signing in, return here and press your chosen verification button again.
Run /nomorevibe verify in your project folder to verify ownership and manage the introduction yourself.
Verify in one minuteAsk about other verification options
Loading the full README. The saved excerpt is shown below.
Ateliê de Cerâmica — Central de Gestão PWA em Next.js 14 (App Router) + TypeScript + Tailwind + Supabase. Crie o primeiro usuário admin manualmente: cadastre-se pela tela de login (isso cria o registro em auth.users) e depois, no SQL editor do Supabase, rode: Stack: Next.js (App Router, Server Components por padrão) · TypeScript · Tailwind · Supabase (Auth + Postgres + Storage) · next-pwa para o manifesto e service worker · Recharts para o gráfico de queima · date-fns para datas.Read the full README ↗
PWA em Next.js 14 (App Router) + TypeScript + Tailwind + Supabase.
npm install
cp .env.local.example .env.local # preencha com as chaves do seu projeto Supabase
# no SQL editor do Supabase, rode nesta ordem:
# 1. supabase/schema.sql
npm run dev
Crie o primeiro usuário admin manualmente: cadastre-se pela tela de login (isso
cria o registro em auth.users) e depois, no SQL editor do Supabase, rode:
update profiles set role = 'admin' where email = '[email protected]';
Stack: Next.js (App Router, Server Components por padrão) · TypeScript ·
Tailwind · Supabase (Auth + Postgres + Storage) · next-pwa para o manifesto
e service worker · Recharts para o gráfico de queima · date-fns para datas.
Por que essa combinação: Server Components buscam dados direto do Supabase sem expor lógica de query no cliente; RLS no Postgres garante que um aluno nunca leia dados de outro aluno mesmo se a UI tiver bug; Client Components ficam só onde há interação/tempo-real (o timer do forno, os formulários).
Papéis: dois únicos perfis (admin, aluno) definidos em
profiles.role. O middleware.ts bloqueia rotas administrativas para quem
não é admin, e o RLS faz a mesma checagem no banco (defesa em profundidade —
nunca confie só no middleware).
Rotas:
/login pública
/(admin)/dashboard admin
/(admin)/turmas/[turmaId] admin
/(admin)/alunos admin — a implementar (ver abaixo)
/(admin)/oficinas admin — a implementar
/(admin)/forno admin
/(admin)/solicitacoes admin — a implementar
/(admin)/pagamentos admin — a implementar
/(admin)/relatorios admin — a implementar
/(admin)/configuracoes admin — a implementar
/(aluno)/aluno aluno — a implementar
Banco de dados: ver supabase/schema.sql — cobre turmas, pacotes,
matrículas, aulas/presenças, reposições, oficinas, queimas (+ conteúdo do
forno e leituras) e notificações, todas com RLS. É o schema completo do
sistema descrito no briefing, incluindo as tabelas das telas que ainda não
têm UI pronta.
Regra de negócio mais sensível — o forno: toda a previsão (temperatura
estimada, % até a máxima, horário previsto da máxima, horário seguro para
abrir) é pura função de (parâmetros da queima, agora) — ver
src/lib/forno.ts. Quando o admin informa uma temperatura real, ela vira o
novo ponto de partida do cálculo (ultimaLeitura), recalibrando toda a curva
sem precisar de outra lógica: é a mesma função, só com outro parâmetro. Isso
é o que a tela chama de "recalcular toda a previsão".
Componentes reutilizáveis: src/components/ui/* (Button, Card, Badge,
Avatar, ProgressRing) são a base de todas as telas — nenhuma tela deve
estilizar botão/card do zero. ProgressRing é o elemento-assinatura visual
do produto (o arco de progresso do forno), reaproveitado no Dashboard e no
Forno.
supabase/schema.sql)tailwind.config.ts, globals.css)src/lib/forno.ts)Card, Avatar, Badge.oficinas.data e cria notificacoes do tipo
oficina_amanha um dia antes (a tabela já está pronta para plugar
WhatsApp: notificacoes.canal_whatsapp_enviado).matriculas.status = 'pendente'
e reposicoes.status = 'solicitada', com os botões Aprovar/Recusar que já
existem como exemplo na tela de Turmas.pacotes), histórico e oficinas.notificacoes do usuário logado,
Supabase Realtime (supabase.channel(...).on('postgres_changes', ...))
para atualizar sem polling.oficina_participantes.pagamento,
queima_conteudo.pagamento)./(admin) herda a Sidebar/MobileNav automaticamente.src/components/ui."use server") próximas da tela que as usa, para
manter a lógica de negócio fora dos componentes de UI.notificacao_tipo do
schema e no NotificacaoTipo de src/types/database.ts.