Case study · Custom management

From the quote to the signed contract, one tool for Agence Distinction

Agence Distinction is a show and artist agency. J3B Web is building its new management tool, from the quote request to the contract signed online, then to the invoice paid by card. The data from the old system will be carried over at the switch.

The starting point

The agency’s old system was built on CodeIgniter 3. Two apps shared the same database. The GST and QST rates were written in the code and not saved on invoices, amounts were stored as floating-point numbers, which creates one-cent gaps, and categories were free text.

It also holds the agency’s whole history, including more than 4,000 clients, more than 1,700 contracts and more than 13,000 invoices. The new tool had to carry it all over, with money totals right to the cent.

What was built

  • Quotes

    • Requests received from the WordPress site’s form
    • Availability asked of artists by email, with a YES or NO answer
    • Proposal page for the client, with no account to create
  • Contracts

    • Online signature, with initials on clauses stamped in the PDF
    • Name, IP address and browser kept with the signature
    • Amendments signed or declined online
  • Invoices

    • Card payment link with Stripe
    • Purchase order numbers and direct sending to the client’s accounts payable
    • GST at 5% and QST at 9.975% calculated to the cent
  • Artists

    • Profiles, photos, videos and song list
    • Song selection for memorial ceremonies
    • Payouts, calendar, bookkeeping and memberships paid online
  • Communications

    • Newsletters with segments, templates and statistics
    • Text messages sent with Twilio
    • Artist profiles published on the WordPress site through a read-only API
  • Security

    • Two-factor authentication on every account
    • Encrypted backups sent off-site, each run logged
    • CSRF protection, a CSP policy and signed webhooks

Three problems solved

  1. 01

    “Unknown” is not “available”

    The old version showed an artist as free when Google Calendar did not answer. The new tool reads calendars in read-only mode, in morning, afternoon and evening slots, and keeps “unknown” apart from “available”. It never drops an artist on its own. The team decides.

  2. 02

    Taxes right to the cent

    Amounts are stored in whole cents. GST and QST are rounded only once, and the QST line takes the leftover cent, so the invoice total always balances.

  3. 03

    Carrying over the history without losing anything

    Eight import commands read the old database without changing it. They can run as a dry run and be rerun as many times as needed, and each one compares counts and money totals with the old system. Anomalies go to a CSV file. The switch is planned to take about thirty minutes, with a rollback plan.

By the numbers

4,135
clients to carry over from the old system
13,490
client invoices and artist payouts
863
automated tests
385
releases shipped in just over four months

Services involved

  • Legacy software modernization

    Replacing an aging system with current software, with all of its data carried over.

  • Custom web applications

    Management tools, client portals and SaaS products that open in the browser, on desktop, tablet and phone.

Other case studies

Platform and mobile API Web and mobile app

Clexif

Social network and monetization for creators · clexif.ca

The API behind the iOS and Android app: subscriptions, shop, real-time virtual gifts, Stripe Connect payouts and push notifications. On the web, creators can also stream live.

  • REST API
  • Push notifications
  • Live video
  • Stripe Connect

190+API endpoints

WordPress plugin Desktop, phone

Show lineup and box office

Performing arts venue · launching soon

The lineup syncs with the Tuxedo box office, the team’s edits are protected and the designer builds the pages in Elementor.

  • WordPress
  • Tuxedo API
  • Elementor
  • Schema.org

60+dynamic tags for building pages in Elementor

SaaS product Web, Android app, offline

BizTrack Suite

RFID inventory for Zebra devices

Portals for administrators, wholesalers, resellers and clients. An Android app that counts inventory offline.

200,000RFID reads synced in 76 seconds in load tests, with no loss or duplicates

All projects

A similar project?

A first 30-minute call with Bobby, with no commitment. You come away with a clear idea, even if custom software isn’t right for you.