Este é um aplicativo financeiro desenvolvido com Next.js 14 e Node.js 20.12.1. O objetivo do projeto é permitir o controle de entradas e saídas financeiras, organizadas por contas e categorias. Além disso, o app oferece um dashboard com um overview das movimentações financeiras de um determinado mês.
Acesse em: https://finance.leonardo-reis.com
- Node.js versão 20.12.1
- Next.js versão 14
- Docker (para rodar em contêiner)
- Clerk para autenticação de usuários
- NeonDatabase (PostgreSQL) como banco de dados
- Adicionar entradas e saídas financeiras
- Gerenciar contas e categorias para as movimentações
- Visualizar um dashboard com resumo das entradas e saídas de um mês
- Filtrar e organizar as transações por data, categoria e conta
- Autenticação de usuários via Clerk
Primeiro, clone o repositório para sua máquina local:
git clone https://github.com/seu-usuario/finance-app.git
cd finance-app
O aplicativo usa o Clerk para autenticação de usuários. Você precisará configurar um ambiente Clerk. Para isso:
- Crie uma conta no Clerk.
- Após criar a conta, crie uma nova aplicação e pegue as chaves de API.
- Adicione as variáveis de ambiente no arquivo .env
NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY=<clerk_key>
CLERK_PUBLISHABLE_KEY=<clerk_key>
CLERK_SECRET_KEY=<clert_secret>
Este projeto utiliza o NeonDatabase (um serviço baseado em PostgreSQL).
- Crie uma conta no NeonDatabase.
- Crie um novo banco de dados e obtenha a URL de conexão.
- Adicione a URL de conexão no arquivo .env:
DATABASE_URL=<sua_url_de_conexao_postgresql>
Demais variaveis
NEXT_PUBLIC_APP_URL=<frontend_url>
NEXT_PUBLIC_CLERK_SIGN_IN_URL=/sign-in
NEXT_PUBLIC_CLERK_SIGN_UP_URL=/sign-up
Após configurar o Clerk e o banco de dados, instale as dependências do projeto:
npm install
Para rodar o projeto localmente, use o comando abaixo:
npm run dev
Isso iniciará o servidor de desenvolvimento na porta 3000.
Caso prefira rodar o projeto em um contêiner Docker, existe um Dockerfile incluído no projeto. Para rodar com Docker:
docker build -t finance-app .
docker run -p 3000:3000 finance-app
O aplicativo estará disponível na porta 3000.
A estrutura do projeto é a seguinte:
.
├── Dockerfile # Arquivo para construção do contêiner Docker
├── next.config.mjs # Configuração do Next.js
├── app/
│ ├── (auth)/ # Autenticacao
│ ├── (dashboard)/ # Paginas da aplicacao ( contas, categorias e transacoes )
│ ├── api/ # Endpoints da API
│ ├── fonts/ # Página para gerenciar saídas
│ └── layout.tsx # Layout principal categorias
├── db/ # Arquivos estáticos (imagens, ícones, etc)
├── drizzle/ # Arquivos sql
├── features/ # Arquivos estáticos (imagens, ícones, etc)
├── componentes/ # Componentes e biblioteca de componentes
├── hooks/ # Metodos das paginas (api, hooks e componentes )
├── lib/ # Bibliotecas externas
├── providers/ # Providers
├── public/ # Arquivos estáticos (imagens, ícones, etc)
├── scripts/ # Scripts para migracao do banco
├── drizze.config.ts/ # Arquivo de configuracao do drizze
├── ts.config.json/ # Arquivo de configuracao do Typecript
├── components.json/ # Arquivo de configuracao do shadcn
└── .env.local # Arquivo de variáveis de ambiente
O dashboard fornece um resumo visual das entradas e saídas por um período específico de tempo, facilitando a análise financeira. Você pode visualizar:
- Total de entradas e saídas.
- Gráficos de overview por categorias e contas.
- Filtros para ajustar o período do relatório.
Licença Este projeto está licenciado sob a MIT License.