Thummar Technologies
Company
Industries
Technologies
Resource
Stine Seed Portal — Enterprise Sales & Operations Platform

HOME - our portfolio - stine seed sales portal

Stine Seed Portal — Enterprise Sales & Operations Platform
Stine Seed Portal — Enterprise Sales & Operations Platform
Industry
Industry

Agriculture & Seed Technology

Built for
Built for

Web

Country
Country

United States

Region
Region

North America

DevOps
DevOps

Azure DevOps + Docker + Terraform

Project Description

The Stine Seed Portal is a full-stack enterprise platform built by TTPL for Stine Seed Company — one of America's largest and most respected independent seed companies, renowned for developing breakthrough high-yielding corn and soybean varieties across the United States.

The platform is a ground-up digital modernization of Stine's entire commercial and financial operations — replacing a decades-old IBM AS/400 COBOL system with two unified, role-driven Angular web applications backed by a layered ASP.NET Core API and Azure SQL. It consolidates six major operational domains: CRM and dealer account management, seed ordering and fulfillment, production and inventory, accounts receivable and financial management, wholesale operations, and system administration — all connected through granular permission-based access control and a company year-aware business feature engine.

The platform serves Stine's national network of dealer accounts, Inside Sales Representatives (ISRs), District Sales Managers (DSMs), Regional Sales Managers (RSMs), seed growers, conditioners, and internal staff through two dedicated applications: the main Stine Portal for internal operations, and a separate ISR Sales Portal for field-facing order entry. Over 100 API endpoints and 80+ QuestPDF-generated reports power every aspect of Stine's annual seed sales cycle.

Goal

The goal of the Stine Seed Portal was to retire a decades-old IBM AS/400 COBOL system and replace it with a modern, multi-application enterprise platform capable of managing the complete commercial, production, and financial lifecycle of a national seed company. The platform had to preserve every business rule from the legacy system while serving a diverse network of dealers, sales reps, growers, conditioners, and internal staff — each requiring precisely scoped access, role-aware workflows, and real-time visibility across accounts, orders, inventory, AR, and production pipelines.

  • Build a unified sales CRM — managing dealer accounts, DSM/RSM territory assignments, acreage data, prospect pipelines, commissions, contacts, and licensing across the full US market
  • Digitize seed ordering — from order placement by product or conditioner through fulfillment tracking, shipment management, and per-account order history
  • Centralize production operations — managing products with variants, grower contracts, conditioner partnerships, multi-type inventory, and bagging approval workflows with seed quality scoring
  • Build a full Accounts Receivable system — account statements, aged trial balance reports, open invoices, late charges, GL entries, and payment management
  • Support wholesale operations — wholesale shipments, transactions, payments, and term file management
  • Implement a company year-aware business feature engine — toggling platform capabilities per year without code deployments
  • Generate 80+ structured PDF reports using QuestPDF — covering orders, inventory, grower settlements, conditioner reports, bill of lading, shipments, AR reports, and more
  • Deploy two independent applications on Azure via Docker and Terraform-provisioned infrastructure with dedicated CI/CD pipelines
Challenges

IBM AS/400 COBOL Migration at Enterprise Scale: Stine's previous system was a decades-old IBM AS/400 COBOL platform with deeply embedded business rules governing pricing calculations, account assignments, company year transitions, and inventory movements. Every legacy module — ARMARK, ARMENU, GRMAIN, SIMAIN, SSBILL, and more — had to be faithfully re-implemented in modern C#, including complex pricing recalculation engines (volume discounts, region discounts, JD discounts, dealer price adjustments, and tech fee structures) without changing any of the business outcomes Stine's staff depended on.

Company Year as a First-Class Domain Concept: Stine's business operates in annual cycles where products, pricing, accounts, and features can change between company years. Every major entity — accounts, products, conditioners, growers, regions, divisions — has a company year dimension that governs what data is active, what features are available, and how ordering and fulfillment are processed. Modeling this as a cross-cutting domain concept without duplicating business logic across years required deep domain design.

ReCalc Pricing Engine: Stine's pricing model is multi-layered — base prices are modified by volume discounts, region discounts, JD discounts, special pricing programs, dealer price adjustments, tech fees, and payment credits that interact in a defined calculation order. Building a standalone ReCalc engine that could recompute correct customer-level pricing across all these stacking discount rules — and regenerate GL entries accordingly — was one of the most technically complex components of the platform.

80+ Structured PDF Reports: Stine's operations depend on dozens of precisely formatted reports — Bill of Lading (multiple formats), grower contracts and settlements, conditioner inventory and contract reports, order status and shipment reports, AR statements, aged trial balance, GL entries, wholesale purchase statements, and more. Each report required accurate data aggregation, precise PDF layout using QuestPDF, and faithful reproduction of the legacy AS/400 report formats that Stine's staff recognized.

Multi-Tier Sales Hierarchy and Account Scoping: Stine's field sales model has multiple tiers — ISRs, DSMs, and RSMs — each with specific account assignment and territory responsibilities. Every user's data view had to be dynamically scoped to their assigned accounts, territories, and visit responsibilities without hardcoding access rules.

Granular Permission Architecture: Stine required individual features — not just modules — to be toggled per role and per company year without touching code. This necessitated a multi-layer permission model with role-permission assignments and user-level overrides, enforced consistently at both the Angular route guard and API authorization middleware layers.

Solutions
Layered Architecture with Feature-Based Core

The API is structured across dedicated layers — Core (Features + Services), Models, Database, and API — with a separate ReCalc engine project. The Core layer organizes business logic into feature modules (Account, Order, Inventory, Grower, Conditioner, AR, Wholesale, and more), each handling its own queries, commands, and service interactions. A separate SalesPortal.Api serves ISR field users with a dedicated, lightweight API surface for order entry and account lookup — independently deployable from the main StinePortal.Api. Serilog writes to a dedicated Azure SQL log database isolated from operational data.

CRM — Dealer Account & Prospect Management

The CRM module is the commercial core of the portal. Dealer accounts are managed through a multi-step workflow covering account details, company year assignments, DSM/RSM territory assignments, acreage data, ownership, contact information, trait provider licenses, and zone codes. Each account's full order history is accessible from the account view. The prospect pipeline gives ISRs a full workflow — importing prospects from external files, assigning them, logging weekly visits and ISR visit tracking, and progressing them through status stages. A CRM dashboard provides ISRs and managers with a live summary of accounts, visits, and prospect pipeline health.

Order Placement, Management & Shipment Operations

The ordering module supports two distinct placement flows — ordering by product (browsing the full product catalog and allocating quantities per account) and ordering by conditioner (placing orders against a specific conditioner's available inventory). Orders are structured as header/detail records with per-line product, quantity, and pricing data. Shipment management covers shipping requests, Bill of Lading generation (in multiple formats including detail, YTD, and inventory-by-lot), return shipments, transfer shipments, and post-shipment reporting. Every order and shipment carries a full audit trail of who acted, when, and against which company year.

ReCalc Pricing Engine

A standalone StinePortal.Core.ReCalc project handles Stine's multi-layer pricing recalculation. Customer-level prices are computed by applying a defined sequence of discount rules — volume discounts, region discounts, JD discounts, special pricing programs, dealer price adjustments, and tech fees — against base prices, then reconciling payment credits and shipment adjustments. The ReCalc engine regenerates GL entries for affected orders and produces the Recalculate GL Print report used by Stine's finance team at the end of each pricing cycle. This faithfully replicates the business logic of the legacy AS/400 pricing recalculation system in a testable, maintainable C# architecture.

Accounts Receivable & Financial Management

A full AR module manages Stine's dealer receivables lifecycle. Account statements are generated per dealer showing open balances, payments, and aging. The Aged Trial Balance report surfaces outstanding receivables by aging bucket across the dealer network. Open invoice management tracks individual invoices, payment applications, and outstanding balances. Late charge calculation and application follows configurable rules. Payment recording covers cash receipts, credit memos, and adjustments. GL entries are generated for all financial transactions and exportable for Stine's accounting team. All AR reports are produced as formatted PDFs via QuestPDF.

Production — Grower, Conditioner & Inventory Management

The Production module manages Stine's supply chain from the seed variety level down to physical inventory at conditioners and elevators. Grower contracts cover agreements, trait provider licenses, location assignments, pricing, premium liability, and production estimates. Conditioner profiles manage agreements, contacts, location assignments, package type authorizations, and max volume reporting per company year. Inventory is tracked across multiple physical types — bagged, bulk, delivered at plant, and elevator — each with its own lifecycle, notes, germination scores, seed sample records, trait test results, and bin codes. The Bagging Approval workflow authorizes seed lots for bagging with approval stages and quality scoring.

Wholesale Operations

A dedicated wholesale module manages Stine's wholesale seed transactions independently from the dealer ordering system. Wholesale shipments are created, tracked, and invoiced with per-shipment payment recording and payment reporting. Wholesale term files define the pricing and payment terms applicable to wholesale accounts. Wholesale transaction history is maintained with full auditability. All wholesale documents — shipment invoices, payment confirmations, and purchase statement reports — are generated as structured PDFs via QuestPDF, maintaining the output format that Stine's wholesale customers expect.

80+ QuestPDF Reports Suite

The platform generates over 80 distinct structured PDF reports using QuestPDF — covering every operational domain. Key report types include: Bill of Lading (detail, YTD, by BL type, inventory by lot, worksheet), Order reports (order status, order summary, orders vs supply, orders by RSM/DSM/product), Inventory reports (bagged summary, available corn/soybean, inventory valuation, conditioner available inventory), Grower reports (grower contract, settlement, premium liability, production estimates, pricing), AR reports (aged trial balance, account statement, late charge, GL entries, open invoices), Conditioner reports (contract, account summary, conditioner settlement), Shipment reports (shipment, shipping request, post-shipment), Wholesale reports (purchase statement, shipment invoice, payment). Each report faithfully reproduces the output format of the legacy AS/400 reports Stine's staff relied on.

USPS Address Validation & Census Integration

All dealer, grower, conditioner, and contact addresses are validated against the USPS Address Validation API at the point of entry, ensuring deliverable addresses for mailing labels, shipping requests, and printed documents. A Census service integration resolves geographic boundary data (FIPS codes, state/county/township) for Stine's territory and region management. These integrations ensure that physical address data throughout the platform is accurate, standardized, and usable for Stine's field operations and financial mailings.

Company Year Business Feature Engine & Permission Model

The Business Feature system allows Stine's operations team to enable or disable specific platform capabilities per company year through the admin portal — with no code changes required. Features are defined as named platform capabilities; each company year activates a range of features controlled by CompanyYearRange records. Access control is implemented as a multi-layer permission model: role-level permissions gate modules and actions; individual users can receive permission overrides beyond their role; job assignments scope ISRs, DSMs, and RSMs to their territory and account data. All permission rules are enforced consistently at Angular route guard level and API authorization middleware simultaneously.

Tech Stack
Tags
Industry
Visuals
THUMMAR TECHNOLOGIES
icon
TRUSTED BY CLIENTS IN 8+ COUNTRIES
icon
ENGINEERING EXCELLENCE
icon
DIGITAL TRANSFORMATION PARTNER
icon
FUTURE-READY SOLUTIONS
icon
GLOBAL SOFTWARE DEVELOPMENT COMPANY
icon
YOUR SUCCESS IS OUR MISSION
icon
50+ PROJECTS DELIVERED GLOBALLY
icon
ON-TIME. ON-BUDGET. ON-POINT.
icon
WHERE VISION MEETS EXECUTION
icon
BUILDING TECHNOLOGY THAT EMPOWERS BUSINESS
icon
THUMMAR TECHNOLOGIES
icon
TRUSTED BY CLIENTS IN 8+ COUNTRIES
icon
ENGINEERING EXCELLENCE
icon
DIGITAL TRANSFORMATION PARTNER
icon
FUTURE-READY SOLUTIONS
icon
GLOBAL SOFTWARE DEVELOPMENT COMPANY
icon
YOUR SUCCESS IS OUR MISSION
icon
50+ PROJECTS DELIVERED GLOBALLY
icon
ON-TIME. ON-BUDGET. ON-POINT.
icon
WHERE VISION MEETS EXECUTION
icon
BUILDING TECHNOLOGY THAT EMPOWERS BUSINESS
icon
flag

Ahmedabad, India

call
inquiry@thummartechnologies.com
Message
+91 9725497682
location
2/3/A Samruddhi Complex, Near Saspan Cross Road, Nikol, Ahmedabad - 382350

© 2026 Thummar Technologies. All rights reserved.

LinkedInX (Twitter)FacebookInstagram
Stine Seed Portal — Enterprise Sales & Operations Platform | TTPL Portfolio | Thummar Technologies