npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2025 – Pkg Stats / Ryan Hefner

@marcos_feitoza/personal-finance-backend

v1.6.0

Published

``` cd /Users/marcosfeitoza/Documents/projeto/app/personal-finance-backend && helm template personal-finance-backend helm -f helm/prod-values.yaml --debug --show-only templates/ingress.yaml ```

Readme

Helm template:

cd /Users/marcosfeitoza/Documents/projeto/app/personal-finance-backend && helm template personal-finance-backend helm -f helm/prod-values.yaml --debug --show-only templates/ingress.yaml

Secret:

Base64-encoded echo -n XXXX | base64s

kubeseal --controller-name=sealed-secrets --controller-namespace=kube-system --format yaml -f secret.yaml > sealed-secret.yaml
k apply -f sealed-secret.yaml

Encription

openssl enc -aes-256-cbc -salt -in secret.yaml -out secret.yaml.enc -pass pass: openssl enc -d -aes-256-cbc -in secret.yaml.enc -out secret.yaml -pass pass:

crie um programa de financas pessoais capaz de ser utilizado na web (locally) e via mobile ( android) nessa promeira faze vamos fazer simples, apenas crie a pagina inicial aonde eu coloco o salario como (credito) e na mesma pagina crie um formulario para inserir as dispesas e tudo deve ser salvo em um posgresql do meu kubernetes cluster. aqui esta o DB, e para se conectar vamos usar o sealedsecrets para salvar os segredos. Abaixo esta a lista de items de despesas. O projeto vai usar essa pasta para o helm e para o app, vamos usar docker para gerar a imagem /Users/marcosfeitoza/Documents/projeto/app/personal-finance

k get all -n postgresql NAME READY STATUS RESTARTS AGE pod/postgres-client-6b9858d594-plz76 1/1 Running 4 (11d ago) 170d pod/postgresql-7dc696d949-gxttl 1/1 Running 4 (11d ago) 170d

NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE service/postgresql NodePort 10.109.84.97 5432:30001/TCP 172d

NAME READY UP-TO-DATE AVAILABLE AGE deployment.apps/postgres-client 1/1 1 1 172d deployment.apps/postgresql 1/1 1 1 170d

NAME DESIRED CURRENT READY AGE replicaset.apps/postgres-client-6b9858d594 1 1 1 172d replicaset.apps/postgresql-7dc696d949 1 1 1 170d

Items e subitens HEALTH Doctor Medicine Other Health

TRANSPORT Bus pass cab car gas Car Parking Car rental Car Traffic ticket Other Transport

PERSONAL EXPENSES Assents Clothing Curses Hair Phone bill present Tech Other PE

HOUSE Energy Net Rent Supermarket Utensils Other Home

LEISURE Snack Bar Sports Breakfast Lunch Dinner Activites Other Leisure

TRIPS Tour Ticket Hotel Exchange Transportation Fly ticket All included Trip Bar Trip activites Trip Food Other Other

PENT HAUS Mortgage-P.H. Pent-hous Expenses

Da Vince Mortgage-Da Vinci

Acores Mortgage-Acores Acores-expenses

flet Mortgage-flet

Plano de Ação

  1. Tecnologias:

    • Frontend (Web & Mobile): Flutter. É a escolha perfeita, pois com um único código, podemos gerar o aplicativo da web (para rodar localmente) e o aplicativo Android.
    • Backend (API): Python com FastAPI. É um framework web moderno, rápido e fácil para criar a API que se comunicará com seu banco de dados PostgreSQL.
    • Banco de Dados: Seu PostgreSQL já existente no Kubernetes.
    • Containerização: Docker para empacotar o backend (API) e o frontend (Flutter web build).
    • Deployment: Helm para orquestrar a implantação de nossos contêineres no Kubernetes.
    • Segredos: Sealed Secrets para gerenciar as credenciais do banco de dados de forma segura, como você solicitou.
  2. Estrutura do Projeto: Vou criar a seguinte estrutura de diretórios dentro de /Users/marcosfeitoza/Documents/projeto/app/personal-finance:

1     /Users/marcosfeitoza/Documents/projeto/app/personal-finance/
2     ├── backend/              # Aplicação da API em Python/FastAPI
3     │   ├── app/
4     │   │   ├── __init__.py
5     │   │   ├── main.py       # Lógica principal da API (endpoints)
6     │   │   ├── models.py     # Modelo de dados do banco
7     │   │   └── crud.py       # Funções para interagir com o banco
8     │   ├── Dockerfile        # Para construir a imagem da API
9     │   └── requirements.txt  # Dependências Python

10 │ 11 ├── frontend/ # Aplicação em Flutter 12 │ ├── lib/ 13 │ │ └── main.dart # Ponto de entrada e UI do App 14 │ ├── pubspec.yaml # Dependências do Flutter 15 │ └── Dockerfile # Para construir e servir a versão web 16 │ 17 └── helm/ # Helm Chart para deployment 18 ├── personal-finance/ 19 │ ├── Chart.yaml 20 │ ├── values.yaml 21 │ ├── templates/ 22 │ │ ├── _helpers.tpl 23 │ │ ├── backend-deployment.yaml 24 │ │ ├── frontend-deployment.yaml 25 │ │ ├── service.yaml 26 │ │ ├── ingress.yaml 27 │ │ └── sealed-secret.yaml # Manifesto do segredo criptografado 28 │ 29 └── db-secret.yaml # Segredo original (antes de ser selado)

  1. Backend (API com Python e FastAPI):

    • Criarei um endpoint POST /transactions para adicionar despesas e créditos.
    • A API se conectará ao PostgreSQL usando as credenciais fornecidas através do Sealed Secret.
    • Definirei um modelo de dados para as transações (ex: id, tipo, categoria, subcategoria, valor, data).
  2. Frontend (App com Flutter):

    • Desenvolverei a página inicial.
    • Ela terá um campo para inserir o salário (crédito).
    • Haverá um formulário para adicionar despesas, com menus suspensos (dropdown) para as categorias e subcategorias que você listou.
    • O aplicativo fará chamadas HTTP para a API do backend para salvar os dados.
  3. Banco de Dados e Segredos (PostgreSQL e Sealed Secrets):

    • Primeiro, criarei um arquivo db-secret.yaml com as credenciais do seu PostgreSQL (host: postgresql.postgresql, port: 5432, user, password, dbname).
    • Em seguida, usarei o comando kubeseal para criptografar este arquivo, gerando um sealed-secret.yaml dentro do chart do Helm. Este arquivo criptografado é seguro para ser versionado.
    • O backend será configurado para ler essas credenciais como variáveis de ambiente.
  4. Deployment (Docker e Helm):

    • Criarei os Dockerfiles para o backend e para o frontend.
    • Desenvolverei o Helm Chart para automatizar a implantação. O chart irá:
      • Criar um Deployment e Service para a API do backend.
      • Criar um Deployment e Service para o frontend web.
      • Aplicar o SealedSecret que, por sua vez, criará o segredo com as credenciais do banco no cluster.
      • Opcionalmente, criar um Ingress para expor a aplicação web.

Este plano cobre todos os seus requisitos, estabelecendo uma base sólida e organizada para as futuras fases do projeto.

Se você concordar com este plano, começarei criando a estrutura de diretórios e os arquivos iniciais. Vamos começar?

Próximos Passos:

  1. Configure suas Credenciais:

    • Abra o arquivo /Users/marcosfeitoza/Documents/projeto/app/personal-finance/helm/db-secret.yaml.
    • Substitua YOUR_USER, YOUR_PASSWORD, e YOUR_DATABASE pelas suas credenciais reais do PostgreSQL.
  2. Criptografe o Segredo (Sealed Secrets):

    • Para manter suas credenciais seguras, vamos usar o kubeseal. Execute o seguinte comando no seu terminal. Ele irá gerar um arquivo criptografado sealed-secret.yaml no diretório do Helm.

    Eu posso executar o comando para selar o segredo para você, mas primeiro confirme que você atualizou o arquivo db-secret.yaml com suas credenciais.

  3. Construa e Envie as Imagens Docker:

    • Você precisará construir as imagens Docker para o backend e o frontend e enviá-las para um registro de contêiner (como Docker Hub, GCR, etc.).
    • Lembre-se de atualizar o arquivo values.yaml em /Users/marcosfeitoza/Documents/projeto/app/personal-finance/helm/personal-finance/values.yaml com o nome do seu repositório de imagens.
  4. Instale o Helm Chart:

    • Depois que as imagens estiverem no seu registro e o segredo estiver selado, você poderá implantar a aplicação no seu cluster Kubernetes com um simples comando do Helm.

Estou pronto para continuar assim que você confirmar que atualizou o arquivo de segredo.