Bem-vindo ao WriteSafe. Este é o repositório do projeto, uma plataforma full-stack para o registro de autoria digital de obras criativas usando a blockchain Polygon.
O sistema é construído em uma arquitetura monorepo contendo:
frontend/: Uma aplicação Angular com SSR, estilizada com Tailwind CSS.backend/: Uma API RESTful construída com NestJS, conectada a um banco de dados MySQL via Prisma.backend/blockchain/: Um subprojeto Hardhat contendo o Smart Contract em Solidity.
Este projeto foi construído utilizando um stack moderno que combina tecnologias Web2 e Web3.
- Frontend: Angular, TypeScript, Tailwind CSS
- Backend: NestJS, TypeScript, Prisma ORM
- Banco de Dados: MySQL (gerenciado via Docker)
- Blockchain (Web3):
- Rede: Polygon (Amoy Testnet)
- Linguagem: Solidity
- Ambiente: Hardhat
- Comunicação: Ethers.js
- Serviços Externos (APIs):
- Armazenamento (Descentralizado): IPFS (via Pinata)
- Armazenamento (Intermediário): Cloudinary
- Pagamentos: Mercado Pago (Sandbox)
- DevOps & Ferramentas:
- Docker & Docker Compose (para o banco de dados)
- Git & GitHub
- Ngrok (para testes de Webhook)
O fluxo de desenvolvimento local é um modelo híbrido: o banco de dados roda isolado no Docker, enquanto o frontend e o backend rodam manualmente em terminais separados para agilizar a depuração e o hot-reloading.
- Git
- Node.js (v20.x recomendado)
- Docker instalado e em execução.
- Ngrok (para testar o fluxo de pagamento).
-
Clone o Repositório:
git clone <URL_DO_SEU_REPOSITORIO> cd writesafe
-
Crie o Arquivo de Variáveis de Ambiente: Este projeto depende de um arquivo
.envna pastabackend/para chaves secretas.- Copie o arquivo de exemplo:
cp backend/.env.example backend/.env
- Edite o arquivo
backend/.enve preencha todas as variáveis de ambiente necessárias (chaves da Alchemy, Pinata, Cloudinary, Mercado Pago, etc.).
- Copie o arquivo de exemplo:
-
Instale as Dependências: Você precisará instalar os pacotes do
npmem três locais diferentes:# 1. Dependências do Backend cd backend npm install # 2. Dependências do Frontend cd ../frontend npm install # 3. Dependências do Hardhat (Blockchain) cd ../backend/blockchain npm install cd ../..
Você precisará de 4 terminais abertos simultaneamente.
# Na raiz do projeto (/writesafe) pra banco
docker-compose up -d
# Na pasta /backend
npm run start:dev
# Na pasta /frontend
npx ng serve
# Em um novo terminal o ngrok
ngrok http 3000