Skip to content

iagobalmeida/caderninho

Repository files navigation

# KDERNIHO Coverage Test Status

SAAS OpenSource (olha o código ai!) para gestão simplificada da sua cozinha independente

Introdução

Essa aplicação não seria possível sem a existência de:

Funcionalidades

No lugar de tabelas do excel, você pode usar o KDerninho para:

  • Estimar custo, faturamento e margem de receitas de forma dinâmica
  • Gerenciar o estoque de seus insumos e outros insumos
  • Gerenciar seu fluxo de caixa cadastrando compras, produção de receitas e outros gastos em geral
  • Compartilhar essas informações com outros usuários de sua organização
  • Exportar e importar dados em CSV (⚙ Em desenvolvimento)

Como Usar

Acesse agora!

O KDerninho já tem uma versão rodando no Railway que você já pode usar:

caderninho.up.railway.app

Essa é uma demonstração de uma versão que ainda está em desenvolvimento, todos os dados serão apagados no lançamento da próxima versão*

Instalação

Rápida

./run install

Manual

  1. Crie um ambiente virtual com python3 -m venv .venv
  2. Inicie o ambiente virtual cmo source ./.venv/bin/activate
  3. Instale as bibliotecas necessárias com pip install -r requirements.txt

Execução

Rápida

./run server

Manual

  1. Inicie a aplicação com uvicorn src.app:app --reload

Rodando localmente com dados de exemplo

  1. Inicie a aplicação
  2. Acesse 127.0.0.1:8000/docs
  3. Execute a rota /reset_db passando no Header a chave token: batatafrita para criar dados de testes no banco
curl --location --request POST 'http://127.0.0.1:8000/scripts/reset_db' \
--header 'token: batatafrita'
  1. Use a conta [email protected] com a senha 123 para acessar como usuário
  2. Use a conta [email protected] com a senha admin para acessar como admin

Testes Rápidos

Rápida

./run tests

Manual

DATABASE_URL="sqlite:///test.db" python -m pytest -s -x

Testes de Cobertura

Rápida

./run coverage

Manual

DATABASE_URL="sqlite:///test.db" coverage run -m pytest && coverage html && rm coverage.svg && coverage-badge -o coverage.svg

vb1.0

  • Separar scripts.js
  • Ajustar exibição de datas em modais
  • Permitir valores quebrados em inputs
  • Cadastrar movimentação de estoque a partir de receita_id e quantidade_produzida
  • Cadastrar quantidade positiva/negativa em estoque a partir de descrição
  • Remover tela Insumos (confusa)
  • Usar clique em linha em vez de editar/excluir
  • Adicionar checkbox com delete massivo em tabelas
    • Caixa
    • Estoques
    • Receitas
      • Listagem
      • Insumos
  • Adicionar opção excluir em modal de editar
    • Caixa
    • Estoque
    • Receitas
      • Listagem
      • Insumos

vb1.1

  • Melhorar UX para mobile
  • Bloquear acesso sem login (decorator)
  • Padronizar botão Ações contendo Criar e Apagar
  • Adicionar confirmação para sair
  • Encontrar lugar para editar nome de insumo
  • Maior robustes em delete/update para garantir organization_id
  • Autenticação em fluxos de seed
  • Ajustar redirect de erro

vb1.8

  • Melhorar db.py
  • Modal Meu Perfil
  • Novo layout
    • Admin
    • Toggle modo escuro/claro
    • Login

vb2.0

  • Formulários verticais em modal
  • Padronizar método dict() em entidades para preencher data-bs-payload
    • Atualizar JS para pegar data-bs-payload de tr ao clicar em td
    • Padronizar formatação de YYYY-MM-DD
  • Aperfeiçoar ainda mais modal e criação e edição de Estoque
  • Funcionalidade modal Meu Perfil
  • Padronizar uso de HEADER_AUTH em vez de decorator
    • Apagar decorator

vb2.5

  • Tela "sobre a aplicação"
  • Corrigir modal de perfil
  • Corrigir inputs de data
  • Tela de criação de conta
    • Funcionalidade criação de conta + organização
    • Bloqueio organizações com mesmo nome
  • Tela "Organização"
    • Alterar nome da organização
    • Criar usuário
    • Apagar usuário
    • Criar usuário dono
    • Limitar ações para apenas donos
    • Editar usuário
      • Modal
      • Funcionalidade
  • Alterar senha
    • Modal
    • Funcionalidade
  • Reorganizar rotas
  • Expiração de Sessão login
  • Redirecionamento de acordo com status_code
  • Permitindo organizações com mesmo nome
  • Refatorar auth.py
  • Reestruturar sesão autorizada de banco de dados
  • Alertas de sucesso
  • Padronização de termos (criar, atualizar, excluír, incluir e remover)
  • Unificar modal "deleteSelecionados"
  • Funcionalidade esqueci minha senha
  • "Lembrar de mim neste dispositivo"
  • Melhorar repository.py
    • Unificar verificacao de permissões
    • Unificar fluxos repetitivos

v1.0

  • Geração de QR Code p/ chave PIX da organização
    • Geração de QR Code PIX com valor da venda
    • Campos cidade e chave_pix em Organização
      • Atualização dos campos a partir de tela /organização
      • Geração de QR Code última venda com dados da organização
  • Campo paga em venda
  • Melhorar repository.py
  • Menu "Ações" mobile
  • Ação marcar como paga em vendas
  • Ação marcar como paga em home
  • Atalho para marcar como paga em Home
  • Modularização de tabelas
    • Template table.html genérico
    • Método columns e row em entidades
    • Modularizar modal
    • Remoção .../table.html
    • Contempla href para Receitas
    • Contempla "insumos" de Receita

v1.2

  • Gestão de insumos
    • Exibir receitas associadas em Insumo
    • Exibir estoque atual em insumos
  • Configurações em Organização
    • Card colapsavel de configurações
    • Campos JSON em banco de dados
    • Rota de atualização / assocaição com tela
    • Aplicar filtro de medida de acordo com config
    • Aplicar filtro de medida geral de acordo com config
    • Aplicar calculos baseados em custo med/g de acordo com config
  • Collapse em QR Code home
  • Reorganização de templates
  • Paginação em tabelas
  • Reorganização de roteadores
    • Criação de Schemas

v1.3

  • Ingredientes viraram Insumos
    • Permitir unidades em insumos (gramas e unidade)
    • Atualizar calculo de receitas
  • Ajustar contexto e sessão
  • Ajustar informações dashboard

v1.4

  • Melhoria descrição de movimentação Uso em Receita
  • Instalação de loguru para logs em arquivo rotativo e logs aprimorados
  • Alerta "Sobre essa página" com link para documentação completa
    • Home
    • Caixa
    • Estoque
    • Receitas
    • Detalhe de Receita
    • Insumos
    • Organização
  • Documentação completa agregando todas as docs
    • Referências para docs completa
  • Tornar alerta "apagavel" (metadata de usuário em JSON talvez?)
    • LocalStorage deu conta do recado

v1.4.5

  • Testes unitários com 95% de cobertura
  • Favicon

v1.5

  • Senhas haseadas no banco
  • Gerar QR PIX em detalhamento de vendas
  • Modularizar rotas
  • Ajustar fluxo de caixa para últimos 30 dias
  • Página de Logs
  • Scroll voltando após fechar modal
  • Tornar aplicação assíncrona
  • ✨ Transformar aplicação em PWA
    • Botão "Baixe o App"
    • Modal "Baixe o App"
  • Campo plano em Organização
    • Exibir plano atual
    • Botão para upgrade/extensão de plano
  • Campo custo fixo em receita
  • Campo porc. tributária em receita
  • Separar modal Insumo e Gasto em receita
  • Tabela Caixa vira Fluxo de Caixa e aceita Entrada e Saída
    • Campo recebido
  • Gráfico de fluxo de caixa
  • Cadastro de custo recorrente em Organização
    • Gráfico "fluxo de caixa"
    • Margem em fluxo de caixa
    • Margem final em fluxo de caixa
    • Cacheamento de dados de fluxo de caixa
    • Mini fluxo de caixa em cabeçalho
    • Forçar limpeza de cache em organização

v2.0

  • Filtro em tabelas
  • Geração de QR Code PIX com valor customizado
  • Upload e download de CSV
  • Autenticacao com OAuth2
  • Modal para upgrade/extensão de plano
  • Limitar número de registros por plano em create
  • Rota /integration/payment que recebe informações de pagamento e atualiza plano e ultimo_pagamento_id

About

SAAS para gestão simplificada de pequenas cozinhas

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •