Skip to content

Aplicação web para registro autoral de obras artísticas (músicas, letras, poesias) usando Blockchain e IPFS para garantir prova de anterioridade imutável e acessível.

Notifications You must be signed in to change notification settings

utfpr-gp/writesafe

Repository files navigation

WRITESAFE 📝

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.

Tecnologias Utilizadas

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)

🚀 Como Executar (Ambiente de Desenvolvimento)

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.

Pré-requisitos

  • Git
  • Node.js (v20.x recomendado)
  • Docker instalado e em execução.
  • Ngrok (para testar o fluxo de pagamento).

Configuração do Ambiente

  1. Clone o Repositório:

    git clone <URL_DO_SEU_REPOSITORIO>
    cd writesafe
  2. Crie o Arquivo de Variáveis de Ambiente: Este projeto depende de um arquivo .env na pasta backend/ para chaves secretas.

    • Copie o arquivo de exemplo:
      cp backend/.env.example backend/.env
    • Edite o arquivo backend/.env e preencha todas as variáveis de ambiente necessárias (chaves da Alchemy, Pinata, Cloudinary, Mercado Pago, etc.).
  3. Instale as Dependências: Você precisará instalar os pacotes do npm em 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 ../.. 

Executando a Aplicação

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

About

Aplicação web para registro autoral de obras artísticas (músicas, letras, poesias) usando Blockchain e IPFS para garantir prova de anterioridade imutável e acessível.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •