Ramees.
← All work

Oron LimitedDec 2025 — present

ConnectNext CRM Portal 2.0

Multi-tenant SaaS CRM for Forex and CFD brokerages


A CRM platform that brokerages run their operations on — onboarding, configuration, client records, and payments, isolated per tenant.

I work the whole traversal on this one. A feature starts as a table and a stored procedure and ends as an Angular component, and I write both ends of it.

Layers delivered

  1. schema — deliveredSQL Server tables, indexes, constraints
  2. stored procedure — deliveredTransactional guards, concurrency control
  3. repository — deliveredDapper, generic base repository
  4. service — deliveredDomain and application layers
  5. controller — deliveredREST endpoints, auth, validation
  6. interface — deliveredAngular components and state

Filled markers are the layers I personally delivered on this project.

Front end

  • Built the admin portal and the shared component library inside an Angular 21 monorepo.
  • Standalone components throughout, with the Signals API for state and OnPush change detection.
  • Ten reusable components consumed across portals: DataTable, FilterTabs, TableToolbar, FormSelect, CustomSelect, Skeleton, Loader, Badge, Toggle, ConfirmDialog.
  • Five functional HTTP interceptors, order-dependent: authentication, refresh token rotation, error handling, loading state, and opt-in GET caching.
  • Functional route guards and canDeactivate protection against losing unsaved work.
  • Light and dark theming through CSS variables, with focus traps, ARIA roles, and keyboard handling on every dialog.

Back end

  • Built OrgSAASAPI, a .NET 8 modular monolith on Clean Architecture.
  • Dapper with stored-procedure-only data access — no inline SQL, no generated queries.
  • A generic BaseRepository and a Result wrapper carrying success and failure through every layer.
  • JWT authentication with refresh token rotation, tenant isolation derived from claims rather than request bodies, and role-based authorization.

Database

  • Around thirty-one stored procedures, each with transactional guards and rollback handling.
  • Optimistic concurrency control via RowVersion, so two editors cannot silently overwrite each other.
  • Soft deletes with filtered unique indexes, UTC-only timestamps, and idempotent deployment scripts.
  • A diff-merge algorithm for screen updates that preserves foreign-key-referenced identifiers instead of deleting and reinserting.

Delivered

  • Organization onboarding — a nine-step gated wizard backed by thirteen stored procedures.
  • Module catalogue — fourteen platform modules with hierarchical screens, a layout editor, and stats aggregation.
  • Organization edit, with validator parity against onboarding and concurrency-safe writes.

Production readiness

  • Established a repeatable audit methodology now applied across modules.
  • One pass surfaced ninety-three severity-classified findings across back end and front end, each with file, line, production impact, and remediation.
  • Sequenced them into a five-stage dependency-ordered plan with build verification between stages.
  • Wrote a nine-document architecture knowledge base and thirteen architecture decision records alongside it.

Front end

Angular 21TypeScriptRxJSSCSSGrapesJSApexCharts

Back end and data

C#.NET 8ASP.NET CoreDapperSQL ServerT-SQL