Carlos José Castro Galante
Carlos.
Proyectos
webdiciembre de 2024

DuckBank | Home Banking

DuckBank es una aplicación web de home banking que permite a los usuarios gestionar sus cuentas bancarias, realizar transferencias, pagar servicios y visualizar su historial de transacciones de manera segura y eficiente. La plataforma ofrece una experiencia de usuario intuitiva, permitiendo a los clientes acceder a servicios bancarios esenciales y monitorear su actividad financiera desde un panel centralizado.

DuckBank | Home Banking
Métricas
8Sprints
4 mesesDuración
3 devsEquipo
60Cupos nacionales
12+Funcionalidades
ITBA 2024Certificación
El problema

El proyecto final de la Certificación Avanzada en Full Stack Developer del ITBA requería construir un sistema completo que demostrara dominio de todos los ejes del programa: front-end moderno, back-end robusto, base de datos relacional y API RESTful. El reto era diseñar un producto cohesivo en 8 sprints bajo metodología Scrum, con entregas incrementales y un MVP funcional por sprint, en equipo con Celina Bono e Ignacio Iannino.

La solución

Un banco digital ficticio con autenticación segura, gestión de cuentas, transferencias por CBU o alias, historial de transacciones persistente, solicitud y cancelación de préstamos y tarjetas, y panel financiero centralizado. El front-end en React y Next.js consume una API RESTful construida con Django REST Framework. La base de datos SQL modela usuarios, cuentas, movimientos, préstamos y tarjetas con integridad referencial completa. CBU asignado automáticamente, sucursal según provincia y eliminación permanente de cuenta con borrado total de datos.

Stack técnico
Frontend
HTML5CSS3JavaScriptReact.jsNext.js
Backend
PythonDjangoSupabasePostgreSQL
Desafíos
  • 01

    Coordinar 8 sprints en equipo con entregas incrementales funcionales, manteniendo coherencia arquitectónica entre los módulos que cada integrante desarrollaba de forma asincrónica

  • 02

    Modelar la base de datos relacional para un sistema bancario real: usuarios, cuentas, movimientos, préstamos y tarjetas con integridad referencial, transacciones SQL y vistas optimizadas

  • 03

    Implementar autenticación segura con tokens en Django REST Framework y gestionar sesiones del lado del cliente en React sin exponer datos sensibles en el estado global

  • 04

    Integrar Next.js sobre una base React existente para mejorar rendimiento y SEO sin reescribir los componentes ya desarrollados en sprints anteriores

  • 05

    Diseñar la lógica de transferencias entre cuentas con validación de CBU, alias y saldo disponible, garantizando atomicidad en la operación mediante transacciones SQL

Aprendizajes
  • 01

    La metodología Scrum con entregas funcionales por sprint obliga a tomar decisiones de arquitectura temprano: una decisión de modelado de base de datos en el sprint 6 afecta directamente la API del sprint 8 y el front-end del sprint 2

  • 02

    Django ORM es productivo para desarrollo rápido pero requiere conocer sus limitaciones con consultas complejas: en varios casos fue necesario escribir SQL raw para joins y subconsultas que el ORM generaba de forma ineficiente

  • 03

    El trabajo en equipo en un proyecto full stack requiere contratos explícitos entre capas: definir los schemas de la API antes de implementarla evita semanas de fricción entre quien construye el backend y quien consume los endpoints

  • 04

    Next.js SSR sobre una SPA React existente no es una refactorización trivial: requiere pensar en qué datos se pueden pre-renderizar en el servidor y cuáles dependen del estado del usuario autenticado

  • 05

    ITBA seleccionó 60 participantes a nivel nacional: la presión de trabajar con estándares profesionales reales desde el sprint 1 aceleró el aprendizaje más que cualquier ejercicio aislado