TorogozAuth

Project manager: Juan Carlos Vasquez Desarrollador: Juan Carlos Vasquez Discord: charlesdev Farcaster: @charlesdev Diseñadora: Paula Martinez Discord: sameskida

Colaboradores:

Claudia Garcias Dos De Santos Discord: claugarciadossantos

Maximiliano Ramos Discord: indominusfortune

MISIÓN Empoderar a estudiantes, instituciones y empleadores mediante la emisión de credenciales académicas digitales seguras, verificables y accesibles, utilizando la tecnología blockchain para garantizar autenticidad, transparencia y confianza global VISIÓN Ser la plataforma líder en credenciales académicas digitales en América Latina, estableciendo un estándar global para la certificación y validación de logros educativos, impulsando la transformación digital en el

sector educativo y laboral.

Descripción del Proyecto:

  1. Resumen del proyecto

Torogoz-Auth es un sistema de autenticación diseñado para aplicaciones modernas que requieren seguridad avanzada y escalabilidad. Su principal propósito es ofrecer una solución híbrida que permita a los desarrolladores implementar autenticación tanto en sistemas tradicionales como en aplicaciones descentralizadas (dApps) basadas en blockchain.

Funcionalidades principales:

Autenticación segura para usuarios mediante credenciales tradicionales.

Integración directa con tecnologías blockchain para soportar wallets y otros métodos descentralizados.

Compatibilidad con aplicaciones convencionales y descentralizadas, proporcionando una solución versátil para diversos casos de uso.


  1. Estructura del proyecto

El diseño de Torogoz-Auth sigue una arquitectura modular, donde cada componente se encuentra separado en directorios específicos según su función. Esto facilita la escalabilidad y el mantenimiento del sistema.

Arquitectura utilizada:

Patrones de diseño: Modularización y separación de responsabilidades (Separation of Concerns).

Framework: Se utiliza Next.js como backend para la gestión de dependencias.

Estructura principal:

Torogoz-Auth/
├── src/
│ ├── app/ # Authentication logic
│ ├── (landingpages)/ # Implements the main pages of the application
│ ├── dashboard/ # Manages the configuration of variables, services and customized display
│ └── utils/ # Shared utilities
├── tests/ # Unit and integration tests
├── .env.example # Example environment variables
├── package.json # Dependencies and scripts
└── README.md # Project documentation


  1. Tecnologías empleadas

Lenguajes y herramientas principales:

Next.js: Usado como base para el backend, aprovechando su escalabilidad y ecosistema de bibliotecas.

Axios: Utilizado para gestionar rutas HTTP.

Privy: Es una plataforma que simplifica la integración de datos privados y autenticación de usuarios en aplicaciones Web3. Proporciona herramientas y APIs para gestionar datos sensibles de forma segura, sin comprometer la privacidad ni almacenar datos directamente en la blockchain.

Blockchain (Ethers.js): Para integrar métodos de autenticación y wallets descentralizados.

Piñata Cloud: es un servicio que facilita la gestión y el almacenamiento de datos en IPFS (InterPlanetary File System), un sistema de almacenamiento descentralizado que permite guardar y acceder a archivos de manera distribuida y segura.

dotenv: Gestión de variables de entorno para asegurar la portabilidad del sistema.

Cómo contribuyen:

Node.js: Garantiza un entorno de ejecución rápido y eficiente para las operaciones del backend.

Blockchain libraries: Permiten conectar wallets como MetaMask y manejar autenticación basada en firmas.

dotenv: Asegura que los secretos y configuraciones sensibles no sean hardcodeados en el código fuente.


  1. Flujo de desarrollo

El desarrollo del proyecto sigue prácticas Agile, permitiendo iteraciones rápidas y mejoras continuas.

Estrategias utilizadas:

Uso de sistemas de control de versiones como Git y GitHub para la colaboración.

Modularización del código para facilitar la integración y el trabajo paralelo en componentes independientes.


  1. Implementación técnica

Características clave:

  1. Autenticación tradicional:

Registro y autenticación mediante credenciales almacenadas de forma segura.

Uso de hashing para proteger contraseñas (por ejemplo, bcrypt).

  1. Autenticación blockchain:

Soporte para wallets descentralizados mediante métodos como firma digital de mensajes.

Verificación de la autenticidad mediante bibliotecas como Ethers.js.

Innovaciones técnicas:

Integración híbrida para soportar aplicaciones tradicionales y descentralizadas.

Separación lógica que permite extender el sistema con nuevos métodos de autenticación sin modificar la base existente.


  1. Despliegue y pruebas

Despliegue:

Entorno local para desarrollo: configuración a través de un archivo .env.

Uso de npm start para iniciar el servidor, alojado en un entorno vercel.

Pruebas:

Pruebas unitarias en el directorio tests/.


  1. Referencias

Repositorio en GitHub

Documentación sobre integración blockchain

Buenas prácticas para autenticación segura.

Built With

Share this project:

Updates