I'm always excited to take on complex challenges and solutions to deliver the best user experiences.

Country

Portugal

Website

https://josematoso.com

Social Links

Project

Piiply

Piiply is a modern, full-featured debt management web application built with ASP.NET Core 9.0 that enables individuals to track, manage, and collect personal and business debts. The platform features automated email notifications, multi-currency support, internationalization (English/Portuguese), real-time payment tracking, and a responsive UI with dark/light themes.

Client

José Matoso

Start Date

Oct 01, 2025
Piiply

Piiply is a debt management platform designed for individuals to manage personal financial obligations. Built with modern .NET technologies and following Clean Architecture principles, the application offers comprehensive tools for debt tracking, payment management, automated notifications, and financial reporting.

Core Features

Debt Management

  • Create and track debts with detailed information (debtor name, email, amount, due date, description).

  • Support for both creditor and debtor perspectives (IsOwner).

  • Distinction between personal and business/service debts (DebtorType).

  • Real-time balance calculations and payment tracking.

  • Debt status management: Open, Partially Paid, Paid, Canceled, Overdue.

  • Priority-based sorting (overdue, due soon, regular).

  • Public debt pages for transparent sharing.

Automated Notification System

  • Due Today Notifications: automatic reminders every 10 minutes for debts due today.

  • Overdue Notifications: daily alerts at 9 AM UTC for debts overdue by more than two days.

  • Payment Confirmations: instant email confirmations when payments are recorded.

  • Debt Updates: notifications for debt creation, updates, and cancellations.

  • Duplicate prevention with database-backed tracking.

  • Personalized email content with creditor information.

Multi-Currency Support

  • Dynamic currency formatting for over 20 currencies (EUR, USD, GBP, BRL, JPY, CAD, AUD, etc.).

  • User-specific currency preferences stored in profile.

  • Automatic currency symbol and format detection.

  • Integration with external currency API for live exchange rates.

  • Consistent currency display across all pages and emails.

Internationalization (i18n)

  • Full support for English and Portuguese.

  • Language toggle with persistent preference storage.

  • Localized UI elements, messages, and email templates.

  • Separate cultures for data formatting and UI display.

  • Resource-based translation system (.resx).

Dashboard & Reporting

  • Real-time KPIs: Total Open Balance, Paid This Month, Overdue Count, Total I Owe.

  • Date range filtering for custom reporting periods.

  • Recent debts list with priority sorting.

  • Top debtors analysis.

  • Month-over-month payment comparison.

  • Export capabilities for financial records.

User Management

  • Integration with ASP.NET Core Identity and SSO support.

  • Email-based authentication with 6-digit confirmation codes.

  • Profile completion enforcement for new users.

  • Secure password reset functionality.

  • User profile management with currency preferences.

Technical Architecture

Technology Stack

  • Framework: ASP.NET Core 9.0 (Razor Pages)

  • Database: PostgreSQL 16+ with Entity Framework Core 9.0

  • Caching: Redis 7.0+ with StackExchange.Redis

  • Background Jobs: Hangfire with PostgreSQL storage

  • Logging: Serilog with Sentry integration

  • Email: SMTP with HTML template generation

  • Frontend: Bootstrap 5, FontAwesome, and vanilla JavaScript

  • Styling: Custom CSS with iOS-optimized navigation and glassmorphism effects

Architecture Pattern

  • Layered Architecture: clear separation between Presentation, Service, Data Access, and Infrastructure layers.

  • Service Layer Pattern: dedicated services for business logic (DebtDetailsService, DebtManagementService, DebtValidationService, etc.).

  • Repository Pattern: data access abstraction through IDebtRepository.

  • Outbox Pattern: reliable message processing with event sourcing.

  • Dependency Injection: comprehensive DI setup across all services.

Key Services

  • DebtDetailsService: handles debt operations (get details, add payment, update, cancel).

  • DebtManagementService: CRUD operations and debt creation logic.

  • DebtValidationService: business rule validation.

  • DebtFilterService: search and filtering functionality.

  • DebtQueryService: advanced queries and pagination.

  • GenericEmailService: dynamic email notifications.

  • CurrencyFormattingService: currency formatting and symbol mapping.

  • LocalizationService: handles internationalization and resource management.

  • IdentityService: manages authentication and user profiles.

  • OutboxService: reliable event publishing and background processing.

Background Jobs (Hangfire)

  • OutboxProcessorJob: processes outbox events every 2 minutes.

  • DueTodayNotificationJob: checks for due debts every 10 minutes.

  • OverdueNotificationJob: sends overdue alerts daily at 9 AM UTC.

  • Cleanup Jobs: automatic cleanup of old notifications.

Database Schema

  • Users: integrates ASP.NET Identity with custom fields (FullName, MainCurrency, IsProfileComplete).

  • Debts: core debt entity linked to users and payments.

  • Payments: payment records associated with debts.

  • OutboxEvents: event sourcing for reliable processing.

  • DueTodayNotifications / OverdueNotifications: tracking and duplicate prevention.

Security Features

  • HTTPS enforcement in production.

  • SQL injection prevention via Entity Framework.

  • XSS protection through Razor Pages.

  • CSRF protection enabled.

  • Secure cookie handling (HttpOnly, SameSite).

  • Profile completion middleware for access control.

  • Integrated Sentry monitoring for error tracking.

Performance Optimizations

  • Redis distributed caching with 30-second expiration.

  • Cache invalidation on data changes.

  • Optimized queries with proper indexing.

  • Background job processing for non-blocking operations.

  • Hardware-accelerated CSS (translateZ(0)).

  • Lazy loading and pagination for large datasets.

Responsive Design

  • Mobile-first approach using Bootstrap 5.

  • iOS-optimized navigation with safe area support.

  • Glassmorphism effects with backdrop blur.

  • Light/dark theme support with smooth transitions.

  • Touch-friendly UI components.

  • Accessibility compliance (ARIA labels, semantic HTML).

Use Cases

  • Personal debt management.

  • Freelance invoicing and payment tracking.

  • Small business debt and client payment management.

  • Shared expense tracking between individuals.

  • Personal loan tracking with payment schedules.

Deployment

  • Docker Support: includes Dockerfile and docker-compose configuration.

  • CI/CD: GitHub Actions workflow for automated deployment.

  • Health Checks: built-in health check endpoints.

  • Monitoring: integrated Sentry for error and performance tracking.

  • Logging: structured logging with Serilog (console and file outputs).

Development Workflow

  • Clean architecture with clear separation of concerns.

  • Modular and testable service layer.

  • Consistent error handling and validation.

  • Extensive logging for debugging and monitoring.

  • Resource-based localization for easy translation.

  • Modular configuration via extension methods.

Piiply represents a modern, scalable, and production-ready solution for personal and business debt management — combining advanced web technologies, thoughtful UX design, and a robust backend architecture.

Share

Leave a comment

Your email address will not be published. Required fields are marked *

Your experience on this site will be improved by allowing cookies. Cookie Policy