TrustVault gives users fine-grained control over which identity attributes they share with OAuth2 relying parties. Rather than exposing a flat user profile, every attribute — legal name, birthdate, address, credentials, pseudonyms — is individually subject to a PrivacyMetadata record. An attribute is only included in an OIDC userinfo response when the user has explicitly marked it as public and the third-party app was granted the matching scope.
A full-stack eLearning web application built with Django REST Framework and React. It features JWT-based authentication, RBAC/ABAC, real-time chat and notifications using WebSockets and Celery, and a robust API for managing users, courses, enrolments, and materials. Designed with a normalised relational schema and thoroughly tested with pytest and Hypothesis.
Demo accounts:
Teacher: teacher1@email.com
Password: AD9A0TFqHO8=
Student: student1@example.com
Password: k+p8FPTYztg=
A containerized Python backend developed for a hackathon by CaixaBank, built with Flask, SQLAlchemy, and Docker. It features user authentication with JWT, secure transaction workflows using PIN and OTP, automated asset trading with a rules-based bot, and periodic payments via APScheduler. Email notifications are handled through Flask-Mail, and services like MySQL and SMTP are orchestrated with Docker Compose.
A backend API built with Flask, MySQL, and Docker for a financial management challenge by CaixaBank. It includes JWT-based user authentication, recurring expenses tracking, international transfer simulations, fraud detection using rule-based analysis, savings alerts, and automated email notifications. The system runs in Docker containers with services like MailHog and MySQL managed via Docker Compose.
A full-stack eLearning web application built with Django REST Framework and React. It features JWT-based authentication, RBAC/ABAC, real-time chat and notifications using WebSockets and Celery, and a robust API for managing users, courses, enrolments, and materials. Designed with a normalised relational schema and thoroughly tested with pytest and Hypothesis.