Ronda
DIDI-SSI-Ronda es un monorepo que cuenta con una API desarrollada con Express.js, una app mobile desarrollada en React Native y 2 Smart Contracts desarrollados en Solidity. Esta aplicaci贸n interactua con DIDI-Server para obtener informaci贸n de los usuarios de ai路di a fin de loguearse e integrarse entre s铆.
Los diferentes colores en las l铆neas no tienen un significado espec铆fico. Es para seguir con mayor facilidad las dependencias. A -> B representa que el m贸dulo A utiliza a B
API
Rutas/Controladores
TBA
Services
api/services/aidi.js
Este servicio se encarga de verificar y actualizar los usuarios en DIDI Server.
api/services/blockchain.js
Representa todas las interacciones con blockchain. Hay una relaci贸n de 1:1 con los m茅todos de RNS y los Smart Contract de Ronda. Adem谩s, se encarga de las transacciones de transferencias de fondos a las wallets de los users.
api/services/credential.js
Emite credenciales a los participantes de las rondas, tanto al iniciarse (con fecha de expiraci贸n al finalizar la ronda)como al finalizarla.
api/services/guest.js
Se encarga de manejar los register, login y verificaciones de cuentas.
api/services/notification.js
Se encarga de enviar a los user y marcar como le铆das las notificaciones. Parte de esta funcionalidad se encuentra en api/helpers/notfications/
api/services/participant.js
Representa la interacci贸n de un participante con una ronda. Con cada interacci贸n, env铆a una notificaci贸n al administrador de la ronda.
api/services/postRes.js
Son trabajos que quedan pendientes luego de enviar la respuesta al cliente.
api/services/round.js
Permite la creacion y modificaci贸n de rondas. Adem谩s de la funcionalidad necesaria para guardar en DB las actualizaciones de estado de la ronda.
api/services/user.js
Se encarga de recuperar usuarios y realizar las uniones con las colecciones de rondas y participantes para entregar la informaci贸n completa del usuario.
Managers
api/managers/blacklisted_password.js
Representa una lista de password que no se deben utilzar, debido a ser muy simples o muy utilizadas.
api/managers/credentials_pending.js
Este modelo representa las credenciales pendientes de emisi贸n.
api/managers/external_auth.js
TBA
api/managers/notification.js
Representa las notificaciones al usuaio que fueron enviadas y el momento en que se visualizan.
api/managers/participant.js
Representa un participante en una ronda.
api/managers/rns.js
Este manager gestiona el resolver de RNS. Actualmente no se encuentra en uso.
api/managers/round.js
Es una ronda dentro del sistema. Contiene la informaci贸n actual de la misma. Esta debe estar en sync con la blockchain.
api/managers/user.js
Son los usuarios verificados y sin verificar dentro del sistema ronda.
api/managers/web3-client.js
Gestiona la instancia del cliente web3. Actualmente no se encuentra en uso.
Smart Contracts
TBA
App Mobile
TBA