All work
SGEnterprise CRMFull-Stack PlatformsCase study

Swalok Group CRM

Gives a multi-division enterprise one place to track clients, sales, tasks and performance.

Enterprise CRM for client management, sales tracking, task assignment and analytics across divisions — React + Node.js/Express + PostgreSQL.

Live siteSource private
Industry
Diversified Enterprise
Role
Full-Stack Engineer
Type
Internal Tool
Year
2024
Status
Delivered
5+
Divisions
Real-time
Insights
Enhanced
Collaboration

Overview

Swalok Group CRM streamlines client interactions and sales operations across multiple divisions. Built with React, Node.js, Express and PostgreSQL, it features a dashboard of sales trends and metrics, a monthly reset for accurate tracking, task assignment with progress, and Excel import for bulk data.

The problem

Swalok Group ran client relationships and sales across five-plus business divisions on spreadsheets and email. Nobody had a single view of who owned an account, what stage a deal was at, or how a division was performing month over month — and historical numbers kept bleeding into the current period.

The solution

Built a division-aware CRM on React + Node.js/Express + PostgreSQL: client records scoped per division, sales activity with task assignment and progress tracking, an admin dashboard of trends and metrics, and a monthly reset so each period reports cleanly. Excel import moved years of existing records in bulk rather than by hand.

Technical stack

Frontend

  • React.js

Backend

  • Node.js
  • Express.js

Data

  • PostgreSQL

Infrastructure

  • REST APIs
  • Excel Integration

System architecture

  1. 1

    React SPA for the client, sales and task workspaces, with an admin dashboard aggregating cross-division metrics

  2. 2

    Node.js / Express REST API over PostgreSQL, with division as a first-class scoping dimension on client and sales records

  3. 3

    Monthly rollover routine that closes the reporting period so month-on-month figures stay comparable

  4. 4

    Excel import/export for bulk onboarding of existing client data and for finance-side reporting

Engineering challenges

Challenge

Divisions tracked the same customer differently, so cross-division reporting double-counted.

How I solved it

Made division an explicit dimension on every client and sales record rather than a free-text field, so a shared customer rolls up once at group level while each division keeps its own pipeline view.

Challenge

Running totals never reset, so current-month performance was buried in cumulative figures.

How I solved it

Added a monthly reset that snapshots and closes the period, keeping historical data intact while giving each month a clean baseline.

Core features

  • Client management across divisions
  • Sales tracking & analytics
  • Admin dashboard with metrics
  • Monthly reset for accurate tracking
  • Task assignment & progress tracking
  • Excel import/export

Results & impact

Client interactions, sales activity and task ownership moved off spreadsheets into one system, giving the group real-time visibility per division and a reporting period that finally matches how the business actually reviews performance.

What I learned

  • Multi-division scoping is far cheaper to model on day one than to retrofit once records already exist.
  • A bulk import path is what decides whether an internal tool actually gets adopted — teams will not re-key years of data.

Related work

All projects
Next step

Have a system like this to build?

I take projects from the first conversation through to production, and stay on for the support that follows.