Skip to content

Una aplicación descentralizada para subir archivos, calcular su hash, firmarlos, almacenarlos en la blockchain y verificarlos posteriormente.

Notifications You must be signed in to change notification settings

Csar290/document-registry-dapp

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 
 
 
 
 
 
 

Repository files navigation

📄 Document Registry dApp

Una aplicación descentralizada para subir archivos, calcular su hash, firmarlos, almacenarlos en la blockchain y verificarlos posteriormente. Construida con Next.js 14, TailwindCSS, Ethers 6, MetaMask, Foundry y Solidity.

🚀 Características principales 🔐 Smart Contract

  • Registro inmutable de documentos.

  • Firma digital con ECDSA.

  • Prevención de documentos duplicados.

  • Recuperación de timestamp, firma y signer.

  • Probado con Foundry (forge):

    • ✔️ 11/11 tests pasando
    • ✔️ Cobertura > 80%

🖥️ Interfaz Web (dApp)

  • Subida de archivos con Drag & Drop.

  • Cálculo automático de hash (Keccak256).

  • Firma del documento usando MetaMask.

  • Confirmación profesional con modales animados.

  • Toasts para notificaciones.

  • Guardar documento en la blockchain.

  • Verificador avanzado de documentos.

  • Historial completo de documentos almacenados.

  • Sistema de pestañas con animaciones.

  • UI moderna con TailwindCSS + Framer Motion.

  • Modo oscuro integrado.

  • Completamente responsive.

📦 Tecnologías utilizadas Backend / Blockchain

  • Solidity

  • Foundry (forge, cast, anvil)

  • ECDSA para verificación de firma

Frontend

  • Next.js 14

  • TypeScript

  • React + Hooks

  • TailwindCSS

  • Framer Motion

  • React Hot Toast

  • Web3

  • Ethers.js v6

  • MetaMask (firma y transacciones)

📁 Estructura del proyecto 📦 project-root ┣ 📁 sc # Smart contract + tests (Foundry) ┣ 📁 dapp # Frontend Next.js ┣ .gitignore ┗ README.md

🔧 Instalación 1️⃣ Clonar el repositorio git clone https://github.com/tu-usuario/document-registry-dapp.git cd document-registry-dapp

🛠️ Smart Contract (Foundry) Instalar dependencias cd sc forge install

Ejecutar los tests forge test -vv

Ver cobertura forge coverage

Lanzar red local Anvil anvil

🌐 Frontend (Next.js) Instalar dependencias cd dapp npm install

Configurar variables de entorno Crear archivo: dapp/.env.local

Contenido: NEXT_PUBLIC_CONTRACT_ADDRESS=0x... NEXT_PUBLIC_RPC_URL=http://localhost:8545 NEXT_PUBLIC_CHAIN_ID=31337 NEXT_PUBLIC_MNEMONIC="test test test ..."

▶️ Ejecutar la dApp npm run dev

Abrir en: 👉 http://localhost:3000

🧪 Modo de Uso 🔵 1. Subir y firmar un archivo Arrastra un archivo o selecciónalo. Se calcula su hash automáticamente. Clic en Sign Document → firma con MetaMask. Clic en Store on Blockchain → guarda el documento.

🟢 2. Verificar documento Subir archivo para calcular su hash. Ingresar dirección esperada del firmante. Clic en Verify Document.

🟣 3. Historial Ver todos los documentos almacenados. Buscar/filtrar por hash. Exportar a CSV.

⭐ Mejoras futuras Integrar IPFS Conectar a testnet Sepolia Subgraph para indexación PWA para uso offline ENS para nombres amigables

🤝 Contribuciones ¡Las contribuciones son bienvenidas! Enviar un pull request o abrir un issue.

📜 Licencia MIT License.

About

Una aplicación descentralizada para subir archivos, calcular su hash, firmarlos, almacenarlos en la blockchain y verificarlos posteriormente.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published