Plataforma de Prevención de Lavado de Activos y Financiamiento del Terrorismo para ADC

Descripción
Desarrollé un sistema completo de Prevención de Lavado de Activos y Financiamiento del Terrorismo (PLAFT) para la empresa ADC, utilizando Django y Python como tecnologías principales.
Este sistema fue diseñado para ayudar a la empresa a cumplir con las regulaciones y normativas relacionadas con la prevención del lavado de activos, permitiendo realizar una adecuada debida diligencia de sus clientes y evaluar los riesgos asociados a sus operaciones.
La plataforma incluye un módulo de registro de clientes que captura información esencial como datos personales, tipo y número de identificación, ubicación geográfica, profesión, productos o servicios utilizados, y si la persona es considerada PEP (Persona Expuesta Políticamente). Esta información es fundamental para establecer el perfil de riesgo de cada cliente.
El sistema implementa una matriz de riesgos que evalúa diferentes factores como la ubicación geográfica, profesión, canal de distribución y otros elementos relevantes para determinar el nivel de riesgo asociado a cada cliente. Esta matriz permite a la empresa categorizar a sus clientes según su nivel de riesgo y aplicar medidas de debida diligencia proporcionales.
Además, la plataforma genera reportes detallados que facilitan el análisis de la cartera de clientes, permitiendo identificar patrones y tendencias que podrían indicar actividades sospechosas. Estos reportes son esenciales para el cumplimiento de las obligaciones de reporte ante las autoridades reguladoras.
Tecnologías Utilizadas
Python
Lenguaje principal para el desarrollo del backend y lógica de negocio
Django
Framework web para el desarrollo de la aplicación y gestión de usuarios
PostgreSQL
Base de datos relacional para almacenamiento seguro de información sensible
HTML/CSS
Estructura y estilos para la interfaz de usuario
JavaScript
Interactividad en formularios y validaciones del lado del cliente
Tailwind CSS
Framework CSS para el diseño responsivo de la interfaz
Desafíos
Manejo de información sensible
Implementar medidas de seguridad adecuadas para proteger la información confidencial de los clientes, cumpliendo con las normativas de protección de datos.
Matriz de riesgos personalizada
Desarrollar una matriz de riesgos que se adaptara a las necesidades específicas de la empresa y al marco regulatorio aplicable, permitiendo una evaluación precisa de los factores de riesgo.
Generación de reportes regulatorios
Crear un sistema de generación de reportes que cumpliera con los requisitos específicos de las autoridades reguladoras, asegurando la exactitud y completitud de la información reportada.
Interfaz intuitiva para usuarios no técnicos
Diseñar una interfaz de usuario que fuera fácil de usar para personal de cumplimiento y otros usuarios no técnicos, manteniendo la funcionalidad completa del sistema.
Soluciones
Gestión de seguridad
Implementé controles de autenticación y autorización utilizando Django, con cifrado de datos sensibles y registros detallados de auditoría para cumplir con los requisitos regulatorios.
Sistema de ponderación de factores
Desarrollé un sistema flexible de ponderación de factores de riesgo que permite a los administradores ajustar los pesos según cambios en la regulación o en las políticas internas de la empresa.
Motor de reportes personalizable
Creé un motor de generación de reportes que permite a los usuarios definir parámetros específicos y exportar los resultados en diferentes formatos como PDF y Excel para facilitar su presentación ante reguladores.
Diseño centrado en el usuario
Apliqué principios de diseño centrado en el usuario para crear flujos de trabajo intuitivos y formularios bien estructurados que guían al usuario a través del proceso de debida diligencia.
Galería

Formulario de registro de clientes para debida diligencia

Formulario completo con campos para evaluación de riesgo

Lista de clientes registrados con indicadores de riesgo

Matriz de riesgo con medidor de nivel de ponderación para evaluación de clientes
Ejemplo de Código
class UserManager(BaseUserManager):
def create_user(self, first_name, last_name, username, email, password=None):
if not email:
raise ValueError('User must have an email address')
if not username:
raise ValueError('User must have an username')
user = self.model(
email=self.normalize_email(email),
username=username,
first_name=first_name,
last_name=last_name,
)
user.set_password(password)
user.save(using=self._db)
return user
def create_superuser(self, first_name, last_name, username, email, password=None):
user = self.create_user(
email=self.normalize_email(email),
username=username,
password=password,
first_name=first_name,
last_name=last_name,
)
user.is_admin = True
user.is_active = True
user.is_staff = True
user.is_superadmin = True
user.save(using=self._db)
return user
Habilidades Python
¿Interesado en un proyecto similar?
Si estás buscando implementar una solución en Python o tienes un proyecto en mente que requiera habilidades de desarrollo similares, no dudes en contactarme para discutir cómo puedo ayudarte.
Contactar