A centralized operations platform that replaced a client's disconnected manual tools with a single system for inventory, invoicing, and financial management.
Full-stack Developer
October 2025 – January 2026
Full-stack Web Application
Production
Proprietary codebase — developed during employment at Synctom

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.
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.
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.
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
Multi-location stock tracking across 2 locations with available and backorder stock levels per variant
FIFO cost calculation across purchase batches for accurate per unit cost and profit tracking
Virtual and composite products with full component breakdowns, custom expenses like materials, labor and transport, and automatic break-even calculation per item
Purchase management with FIFO tracked remaining stock per purchase batch
Invoice and quotation creation with multi-item support, percentage and fixed discounts, GST calculation, and support for additional charges
Multiple payment methods per invoice with automatic status progression from pending to partial to paid
Professional invoice printing and PDF export built with React Print and jsPDF
Customer financial tracking with totalInvoiced, totalPaid, and outstandingBalance synced automatically across all transactions
Double-entry ledger with support for invoices, payments, adjustments, credit notes, and debit notes
Project management with budget tracking, expense tracking against projects, and a full status workflow from planning through to completion
Category based expense tracking with source attribution so you know whether an expense came from a manual entry, an invoice, or a project
Role-based access control for admin and staff with route protection enforced at the middleware level
Auto-generated custom IDs for invoices and products so records are always organized and traceable
Cloudinary integration for product image uploads and management
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.
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.
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.
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.
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.
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.
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.