Caso de estudio 05
PWA de wallet de Bitcoin a escala nacional
Panda Group · 09/2017 – 01/2021 · Desarrollador full stack
Una progressive web app en React y una API Django para una wallet de Bitcoin a escala nacional, con superficies de exchange y BTM que compartían patrones de wallet y ledger.
- Forma
- PWA + API Django
- Superficies
- Wallet, exchange, BTM
- Ledger
- Postgres
Problema
Una wallet de consumo a escala nacional no puede ser solo una app nativa ni tratar el ledger como una demo privada. La gente llega desde un navegador. El saldo, el envío y la recepción tienen que sobrevivir a redes inestables. Los productos adyacentes de exchange y BTM necesitaban las mismas primitivas de wallet sin copiarlas.
Restricciones
La wallet tenía que funcionar como PWA. Las rutas renderizadas en servidor tenían que seguir existiendo para entornos en los que el bundle del cliente no estaba dado. El ledger y la API HTTP tenían que mantenerse consistentes bajo uso concurrente. Este texto no nombra el despliegue soberano, no muestra una interfaz de wallet ni describe el interior de la custodia.
Arquitectura
Una PWA React atendía la sesión de consumo: instalable, con gráficos donde la superficie de exchange los necesitaba, y explícita sobre el estado de la wallet. Una API Django con Postgres poseía saldos, transferencias y plantillas renderizadas en servidor para el borde que no era SPA. La PWA del exchange (Angular) y la PWA Vue del BTM reutilizaban los mismos patrones de manejo de wallet en lugar de hacer crecer un segundo ledger. Las guías animadas de compra en la ruta del BTM eran solo presentación; la liquidación se quedaba en la API.
Rol
Construí la PWA React de la wallet, la API Django y Postgres, y las plantillas renderizadas en servidor. También publiqué el frontend del exchange y la ruta de compra del BTM para que las tres superficies compartieran primitivas de wallet en lugar de bifurcarlas.
Resultados
- Una ruta de wallet nativa del navegador que no exigía una instalación de tienda.
- Una API y un ledger detrás de las superficies de wallet, exchange y BTM.
- Las plantillas renderizadas en servidor mantenían honesto el borde no SPA contra los mismos saldos.
Stack
- React
- PWA
- Django
- PostgreSQL
- Angular
- Vue
- JavaScript
