Um aplicativo web para gerenciar sua carteira de cryptomoedas e acompanhar dados como preços, volumes de negociação e capitalização de mercado em criptomoedas.
Você pode acessar o aplicativo em produção AQUI
- Adicionar cryptomoeda em sua carteira
- Adicionar e gerenciar transações
- Consultar saldo por cryptomoedas na carteira
- Consultar saldo da carteira e total investido
- Acompanhar preços e dados de criptomoedas no mercado
Front-end: React, Next, TailwindCSS, NextUI, RadixUI, Zustand, Zod, NextAuth
Back-end: Node, Fastify, Prisma, PostgreSQL, Vitest, Zod
Para consultar a documentação da API acesse o link. Documentação
Para rodar esse projeto, você vai precisar adicionar as seguintes variáveis de ambiente no seu .env
# Banco de dados
DATABASE_URL=
# Api de consulta de preços
# https://cryptorank.io/public-api
CRYPTO_RANK_API_KEY=
# JWT config
JWT_SECRET=
# AWS S3 config
APP_AWS_ACCESS_KEY_ID=
APP_AWS_SECRET_ACCESS_KEY=
APP_AWS_REGION=
APP_AWS_BUCKET_NAME=
APP_AWS_BASE_URL=
# Back-end api url
NEXTBASE_URL=
# Next config
NEXTAUTH_SECRET=
Clone o projeto
git clone https://github.com/andersonwea/crypto-folio
Entre no diretório do projeto
cd crypto-folio/server
Instale as dependências
npm install
Inicie o banco de dados
docker compose up -d
Inicie o servidor
npm run start:dev
Entre no diretório do projeto
cd crypto-folio/web
Instale as dependências
npm install
Inicie o servidor
npm run dev
Para rodar os testes no Back-end, rode os seguintes comandos
Testes unitários
npm run test
Testes end to end
npm run test:e2e
Desenvolvi este projeto totalmente do zero, abrangendo desde o design das telas até a elaboração dos requisitos e o processo de implantação. Obtive valiosos aprendizados durante essa experiência, demonstrando minha capacidade de lidar com projetos práticos.
Um dos desafios enfrentados foi a implementação da autenticação dos usuários na aplicação. Seguindo as boas práticas, desenvolvi um sistema de rotação de tokens, incorporando tanto tokens de acesso quanto tokens de refresh.
Outra dificuldade surgiu durante a implantação do servidor da aplicação, quando o tamanho da build do projeto excedeu o limite máximo de armazenamento no ambiente de deploy. Consegui superar esse obstáculo ao otimizar o script de deploy, removendo todos os testes e dependências de desenvolvimento desnecessárias para o ambiente de produção, resultando na redução do tamanho do projeto.
Se você tiver algum feedback, por favor nos deixe saber por meio de andersonwea14@gmail.com
-
Implementar login pelo Google
-
Implementar troca de câmbio