logoSharoon S.

  • Home
  • Projects
  • Case Studies
  • About
  • ⌘ K or /
© 2026 - Made with by Sharoon.

Newon

A centralized operations platform that replaced a client's disconnected manual tools with a single system for inventory, invoicing, and financial management.

Role

Full-stack Developer

Timeline

October 2025 – January 2026

Type

Full-stack Web Application

Status

Production

Technical Stack

frontend
Next
Next
TypeScript
TypeScript
Tailwind CSS
Tailwind CSS
Shadcn UI
React Print
backend
Next.js API Routes
MongoDB
MongoDB
NextAuth
database
MongoDB
MongoDB
services
Cloudinary
Cloudinary
jsPDF

Proprietary codebase — developed during employment at Synctom

Newon
01 // Vision

Project Vision

Newon is a production-grade business management platform I designed and built entirely on my own for a real client at Synctom. It covers inventory with multi-location stock tracking and product variants, a full invoice and quotation system with GST and payment tracking, customer financial management, project budget tracking, a double-entry ledger, and role-based access control, all connected under one cohesive platform. It has been in active use since delivery and currently manages records across invoices, products, and customers.

02 // Problem

The Friction

The client was managing inventory, invoices, customer balances, and project budgets across disconnected tools with no unified view of anything. There was no way to know which stock was consumed by which invoice, whether a customer had an outstanding balance, or how much of a project budget had actually been spent. Every answer required manual cross-referencing across different places.

03 // Solution

The Strategy

A centralized full-stack platform where every module talks to each other. Inventory deductions flow from invoices, customer balances update automatically from payments, project expenses track against budgets in real time, and every financial transaction lands in a ledger. I built the whole thing solo from schema design to deployment.

04 // Features

Core Features

1

Product management with a flexible attributes and variants system. You define the attributes like size or color and the system generates all variants with their own individual SKUs

2

Multi-location stock tracking across 2 locations with available and backorder stock levels per variant

3

FIFO cost calculation across purchase batches for accurate per unit cost and profit tracking

4

Virtual and composite products with full component breakdowns, custom expenses like materials, labor and transport, and automatic break-even calculation per item

5

Purchase management with FIFO tracked remaining stock per purchase batch

6

Invoice and quotation creation with multi-item support, percentage and fixed discounts, GST calculation, and support for additional charges

7

Multiple payment methods per invoice with automatic status progression from pending to partial to paid

8

Professional invoice printing and PDF export built with React Print and jsPDF

9

Customer financial tracking with totalInvoiced, totalPaid, and outstandingBalance synced automatically across all transactions

10

Double-entry ledger with support for invoices, payments, adjustments, credit notes, and debit notes

11

Project management with budget tracking, expense tracking against projects, and a full status workflow from planning through to completion

12

Category based expense tracking with source attribution so you know whether an expense came from a manual entry, an invoice, or a project

13

Role-based access control for admin and staff with route protection enforced at the middleware level

14

Auto-generated custom IDs for invoices and products so records are always organized and traceable

15

Cloudinary integration for product image uploads and management

05 // Hurdles

Hurdles & Breakthroughs

#1   FIFO cost calculation across purchases

Resolution_Strategy

I built a FIFO engine that allocates stock consumption across purchase batches in chronological order, tracking remaining quantities per batch as invoices are created or edited. The tricky parts were handling identical purchase dates, correctly restoring stock when an invoice gets edited, and making sure stale data from previous calculations never corrupted the current result. It took a lot of edge case thinking to get right.

#2   Product variant and attributes system

Resolution_Strategy

Instead of generating every possible combination upfront, I designed a schema where attributes and their allowed values are defined at the product level. When a staff member creates a variant, the system presents only the relevant attributes for that product and they pick the values that apply. This way variants are created intentionally rather than exploding into combinations nobody asked for. Each variant gets its own SKU, stock levels per location, and purchase history, and getting the embedded document structure right so queries stayed clean took several iterations.

#3   Customer financial sync across transactions

Resolution_Strategy

Every time an invoice was created, edited, or paid, the customer's totalInvoiced, totalPaid, and outstandingBalance had to stay perfectly in sync. I used MongoDB transactions to make sure these updates were atomic and wrote migration scripts early on to fix any drift that crept in during development.

#4   Stock deduction race conditions on invoices

Resolution_Strategy

When two invoices hit the same purchase batch simultaneously, the remaining stock count could get corrupted. I solved this using MongoDB transactions and atomic updates on the remaining field so concurrent invoice creation could never produce incorrect stock deductions.

#5   Backend performance across interconnected modules

Resolution_Strategy

Early on the platform was slow because of chained populate calls and separate calculations running after each query. I refactored the backend to use MongoDB aggregation pipelines that compute totals, averages, and balances in a single database trip. Added proper indexing on frequently queried fields and pagination across all list endpoints. The difference in response times was significant.

#6   Professional invoice printing

Resolution_Strategy

The client needed invoices that looked presentable enough to send to their own customers. I built a print layout in React that matched what you would expect from proper accounting software and wired it up with React Print and jsPDF so invoices could be printed directly or exported as a PDF.

06 // Impact

Final Outcome

Delivered and deployed to the client through Synctom. The platform has been in active daily use since January 2026 and currently manages over 200 records across products, invoices, and customers. It replaced a collection of disconnected manual tools and gave the client a single place to run their operations.

07 // Reflection

Key Learnings

"This was the most complex thing I had built on my own up to that point. Designing interconnected modules where data flows correctly between inventory, invoices, customers, and the ledger taught me to think about the whole system before touching a single line of code. The FIFO engine especially pushed me to think carefully about state, ordering, and edge cases in a way that tutorials never do. Building it solo also meant every architectural decision was mine to own and mine to fix."
Contents
Got an idea? Let's turn it into something real
ssharoon166@gmail.com
Github
LinkedIn
Let's Talk