Skip to content

RentOne Platform Documentation

Overview

RentOne is a multi-tenant rental commerce platform built for businesses that offer furniture, appliances, electronics, fitness equipment, and other products on a rental basis. Customers interact through web and mobile applications, while tenant administrators manage their operations through a dedicated admin console.

The platform is built on a microservices architecture using Spring Boot and Spring Cloud, with each tenant operating in complete isolation — separate databases, separate authentication contexts, and independent data access. Core capabilities include tenant onboarding, customer and inventory management, order lifecycle tracking, payment processing, maintenance operations, push and SMS notifications, and customer feedback management.


Technology Stack

Component Technology
Backend Spring Boot
Architecture Microservices
API Gateway Spring Cloud Gateway
Service Discovery Eureka
Database MongoDB 7
Reverse Proxy Nginx
Service Manager systemd
CI/CD Jenkins
Authentication JWT
Hosting Akamai Linode
SMS MSG91
Push Notifications Firebase Cloud Messaging
Maps Google Maps API
Frontend Web React
Admin Panel React + Vite
Mobile App(s) React Native

Domains

Service URL
Customer Website https://rentone.co.in
Admin Console https://console.admin.rentone.co.in
Backend APIs https://cloud.rentone.co.in
Jenkins https://jenkins.rentone.co.in
CDN https://cdn.rentone.co.in

Multi-Tenant Architecture

The platform supports multiple tenants through the request header:

X-Tenant-Header

Current tenants:

Tenant Purpose
RENTONE Production
DEVMINDS Testing

Microservices

Service Port Description
Service Registry 6001 Eureka-based service discovery. All microservices register here on startup and use it to locate each other by name.
API Gateway 6002 Single entry point for all client traffic. Handles JWT validation, tenant resolution, rate limiting, CORS, security headers, and routes requests to the correct downstream service.
Tenants Service 6003 Manages tenant registration, tenant administrator accounts, authentication, and JWT issuance. Resolves the per-tenant MongoDB connection string used by all other services.
Cloud App Service 6004 Platform configuration service. Provides default Access Control Group (ACG) permission maps by user type, invoice templates, delivery zone management, and Google Maps integration for address and geocoding operations.
Users Service 6005 Manages end-user (customer) accounts, KYC verification, and user authentication via OTP (MSG91). Issues JWTs for mobile and web customers.
Product Catalog Service 6006 Manages the full product catalog including categories, products, variants, rental packages, and variant-level statistics.
Inventory System 6007 Tracks physical inventory units across warehouses. Manages stock levels, item conditions, warehouse locations, and all inventory movement transactions.
Commerce Service 6008 Handles the customer purchase lifecycle — shopping cart, order drafting, order placement, delivery assignment, wishlists, address management, and invoice generation.
Payment Gateway Service 6009 Integrates with Razorpay for payment initiation, verification, and webhook processing. Credentials are injected via systemd environment variables and never stored in source code.
File Management Service 6010 Handles file uploads and serves static assets. Files are stored on the server and delivered through the CDN domain cdn.rentone.co.in.
Notification Service 6011 Centralised notification hub. Handles Firebase push notifications, device token management, in-app notifications, and production error reporting to Slack.
Commerce Feedback Service 6012 Manages post-rental customer feedback including product reviews and issue category classification.
Operation Service 6013 Handles post-delivery operations including return requests, maintenance requests, delivery partner management, and partner task assignment.

Documentation Structure

  • Architecture
  • Infrastructure
  • Services
  • Deployment
  • Operations Runbook