Skip to content
All projects

Placeholder case study: edit it in content.js

Oracle reporting modernisation

Replacing slow, manual month-end reports on a legacy Oracle system with an automated reporting service and a modern dashboard.

  • Django
  • Oracle
  • MySQL
  • PostgreSQL
  • Svelte
Client
Manufacturing company (sample)
My role
Backend and database developer
Timeline
10 weeks
  • 4 hrs → 40 sec

    Heaviest monthly report

  • 22 reports

    Automated and scheduled

  • 0 downtime

    During the switch-over

The problem

The company's core records sat in a ten-year-old Oracle database. Finance exported data by hand into spreadsheets, month-end reports took hours and often disagreed, and nobody dared touch the system because the original developers had left.

My approach

I left the Oracle system untouched and read from it safely. A Django service pulls the data on a schedule, cleans and reconciles it, and stores reporting-ready tables in PostgreSQL. A Svelte dashboard then serves the reports instantly. Old and new numbers ran side by side before anyone switched.

The hardest part

Trusting the numbers before retiring the spreadsheets

Finance would not accept new figures without proof. I wrote reconciliation checks that compare totals between Oracle and the new tables every night and flag any difference, and ran both systems in parallel for a full month-end cycle until the results matched to the last rupee.

How the technology solved it

  • Oracle

    Source of truth. Queried read-only with tuned SQL so the live system is never slowed down.

  • MySQL

    Branch-office data brought into the same pipeline through a second connector.

  • PostgreSQL

    Reporting store with summary tables and indexes built for fast aggregation.

  • Django

    Extraction jobs, reconciliation checks, report API and access control for finance staff.

  • Svelte

    A responsive dashboard that replaced the emailed spreadsheets.

What I built

  • Scheduled, read-only extraction from Oracle with retry and alerting
  • Reconciliation checks that prove old and new totals match
  • Self-serve dashboard with filters and CSV or PDF export
  • Legacy MySQL branch-office data merged into the same reports

The result

Month-end close moved from days of manual work to a review of reports that are already waiting. Finance trusts the figures because every total is reconciled automatically.