Skip to main content

Industrial parts & procurement · Bangladesh-first, globally extensible

GRITNOX

Documentation

A product surface should explain its own boundaries.

Architecture, data responsibilities, API routes and implementation status for the Gritnox concept, written for reviewers who need to distinguish demonstrated behavior from production claims.

Portfolio engineeringImplementation map
01

Next.js surface

Public discovery, sourcing and documentation routes

02

Django API

Catalog, procurement, accounts, sellers, orders and administration

03

MongoDB

Catalog records, RFQs, inquiries and marketplace data

04

Disclosure layer

Evidence states and demo boundaries in the interface

01 · System

Architecture at a glance

The browser renders the Next.js App Router interface. Public catalog and procurement requests reach the Django REST API, which reads or writes MongoDB. Authenticated marketplace functions use an HttpOnly Django session with CSRF-protected writes. The public catalog remains independent of checkout.

Next.jsPublic and dashboard UI
Django RESTValidation and authorization
MongoDBRecords and workflow state
  • The public catalog, part detail, equipment and supplier views use unauthenticated read APIs.
  • RFQ and contact submissions are public, validated and rate-limited at the API boundary.
  • Protected dashboard and seller operations rely on API-side authorization, not client route guards alone.
  • Demo data is identified in the interface and should not be treated as live market data.

02 · Surface

Public routes

/parts

Search and faceted part discovery

/parts/[slug]

Part identity, evidence, cross-references and offers

/equipment

Equipment directory and fitment counts

/suppliers

Illustrative supplier directory

/rfq

Sourcing list and demo RFQ submission

/about

Product thesis, data policy and status

/help

Workflow guidance and troubleshooting

/trust

Evidence, data labeling and safety boundaries

/privacy

Data categories, session cookies and browser storage

/terms

Demo-use and commercial boundaries

/accessibility

Target standard and known gaps

/contact

Validated public inquiry intake

/changelog

Implemented release history

/design-system

Live visual specifications

/docs

This implementation map

03 · Contract

Gritnox API surface

MethodEndpointPurpose
GET/auth/csrf/CSRF bootstrap for session-authenticated requests
POST/auth/login/Throttled session login with generic failures
POST/auth/register/Buyer registration with session and verification mail
POST/auth/logout/CSRF-protected session sign-out
POST/auth/password/change/Current-password check and account-wide session revocation
POST/auth/password-reset/request/Generic account recovery request
POST/auth/email/verify/confirm/Signed, time-limited email verification
GET/dashboard/admin/overview/Administrator operating aggregates
GET/dashboard/buyer/overview/Buyer order and spend aggregates
GET/seller-analytics/Seller sales, order and wallet analytics
GET/catalog/categories/Categories with published part counts
GET/catalog/manufacturers/Manufacturers and catalog presence
GET/catalog/parts/Search, filters, ordering and pagination
GET/catalog/parts/{slug}/Part identity, identifiers, fitment and offers
GET/catalog/equipment/Equipment models and fitment records
GET/catalog/suppliers/Illustrative supplier profiles
GET/catalog/stats/Catalog demonstration totals
POST/procurement/rfqs/Validated demo RFQ submission
POST/support/contact/Validated public contact intake

Part search accepts query, category, manufacturer, equipment, evidence, supplier, availability, ordering and pagination parameters. The contact endpoint accepts the topics general, catalog data, procurement, supplier, accessibility and security.

04 · Model

Data responsibilities stay separate

CatalogPart

Canonical component identity, manufacturer, category, descriptions and record status.

PartIdentifier

Primary, alternate and supplier-facing references with identifier type.

PartAttribute

Typed specification values that preserve units and value types.

EquipmentFitment

Equipment relationship with evidence state, relationship type, reference and review context.

SupplierOffer

Supplier-specific SKU, condition, price, currency, MOQ, stock, lead time, warranty and freshness.

RFQ

Validated buyer context, delivery requirement, notes and requested part lines, with a generated reference.

Identity is not evidence

A part record may be correct while a fitment claim is unverified. A fitment may be plausible while a supplier offer is stale. The model preserves those independent states instead of flattening them into one trust score.

05 · Reality

Implementation status

CapabilityStatusBoundary
Part discovery and filtersImplementedPublic Gritnox API and interface
Fitment evidence statesImplementedVerified, claimed, unverified, rejected
Offer comparisonImplementedSupplier-specific terms and freshness
Sourcing listImplementedBrowser-local state
RFQ persistenceImplementedServer-validated demo workflow
Contact intakeImplementedPersisted demo inquiry and reference
Authentication and recoveryImplementedHttpOnly session, CSRF, verification and revocation
Role-based demo workspaceImplementedFixed buyer, seller and administrator fixtures behind an opt-in demo endpoint
Multi-factor authenticationNot implementedNo TOTP, WebAuthn or recovery-code flow
Role dashboardsImplementedBuyer, seller and administrator aggregates from persisted records
Authorization and store releaseImplementedServer-enforced roles and administrator-controlled activation
Checkout and ordersImplementedServer-priced checkout, Stripe validation and scoped fulfilment
Supplier outreachNot implementedNo supplier is contacted
Live inventory and pricingNot implementedAll catalog data is illustrative

06 · Checks

Validation is not implied by a successful render

  • TypeScript and production-build checks validate the frontend route graph and component types.
  • Django system checks validate project configuration without proving database migrations are applied.
  • Database-backed tests require a reachable MongoDB instance and must be run against the configured environment.
  • The scoped public-surface lint command and Jest suite pass independently of the production build. The full-repository lint backlog remains a documented cleanup gate.
  • RFQ, contact and dashboard flows should be exercised end to end before any operational deployment.

Production gate

A production operator must complete migrations, database-backed tests, full-repository lint cleanup, independent security and accessibility review, secret rotation, hosting configuration and live workflow validation. The application is a working product concept, not a certified live procurement service.

07 · Operations

Operational notes

  • Set NEXT_PUBLIC_API_URL and NEXT_PUBLIC_SITE_URL for the deployment environment.
  • Configure a reachable MongoDB URL, replace demo secrets and restrict allowed hosts.
  • Run migrations and the idempotent seed command only in the intended environment.
  • Review rate-limit storage and proxy headers before exposing public intake endpoints.
  • Enable demo mode only on an isolated database and disable it before production use.
  • Replace demo supplier data with authorized records before any real catalog use.