Skip to content
Back

Duepalleggi

Full-Stack Developer

Duepalleggi is an established platform for booking sports facilities, with tools for both individual players and the clubs that run the venues. I worked on it as a full-stack developer, building a complete newsletter system and hardening security across bookings and payments.

Laravel 5.2, PHP, AngularJS, Stripe, MySQL

Overview

Duepalleggi is a platform for booking sports facilities, with tools for both individual players and the sports clubs (società sportive) that run the venues. Players reserve courts and time slots; clubs manage availability, members, billing, and payments.

My Role

Full-stack developer on an established product. I owned a newsletter system and a round of security hardening across the booking and payment flows.

What I Built

  • A complete newsletter system: clubs compose and send newsletters to members, with GDPR consent, recipient filtering, a test mode, and a send history
  • Reliable, observable batch sending so large sends don’t fail or double-send
  • Security hardening across bookings and payments (club-ownership checks, credit-pay restrictions)
  • A series of booking-flow fixes: time-slot selection, the mobile booking bar, and visibility rules

Outcome

Clubs gained a direct, compliant channel to their members: they can reach the right recipients, see what’s been sent, and trust that a large send won’t silently fail or go out twice. On the security side, the work closed gaps around who can act on a booking or a payment, so a club can only touch its own data, and credit operations are blocked where they don’t apply.

Under the Hood

  • Newsletter: a 3-state feature-flag rollout with admin settings and send logs; async, idempotent batch sending with observability; a club-panel history page; GDPR consent, sanitized HTML, proper unsubscribe links, and a weekly send limit
  • Security: enforced club ownership on booking endpoints, validated cash-movement storage and filtering, and blocked credit pay/refund on non-credit clubs
  • Maintenance: Node compatibility work (pinned dependencies, regenerated lockfile) plus booking time-slot and mobile-bar fixes
  • A legacy Laravel 5.2 + AngularJS application with Stripe-based payments