Web application that manages your sales team efficiently.

Overview


Sales Incentive Management System

Spring Boot React Native MySQL Hibernate Maven Bootstrap Spring Security JWT

OverviewEntitiesAPIsDemoApplication PropertiesDevelopmentBuild

Overview

Problem Statement

Creating a solution for a customer which is a big player in the Vehicles sales. The company has sales channels in multi geographies and sells different types of vehicles - 2 wheelers, 3 wheelers, 4 wheelers and commercial vehicles. They have a complex commission calculation model and needs help in creating a sales incentive management platform.

Demands of the customer

  • Used to manage the commission to be paid to the Salesmen.
  • The system should allow addition of a sales team member.
  • System should allow for the definition of products under the following product types:
    • 2 Wheelers
    • 3 Wheelers
    • 4 Wheelers
    • Commercial Vehicles
  • System should allow for batch input of sales for every product on a daily basis.
  • The system should calculate the commission payable for every sales team member once the data for a month is updated.

Technology Stack

  • Backend - Spring Boot
  • Database - MySQL
  • Frontend - React
  • Build System - Maven

Entities

User

  • userId (primary key)
  • username
  • name
  • password
  • userQuota
  • role

Role

  • roleId (primary key)
  • roleName

User Role (Hibernate Auto Generated Table)

  • userId (foreign key)
  • roleId (foreign key)

Product Type

  • productTypeId (primary key)
  • pType

Products

  • pId (primary key)
  • pName
  • pCost
  • pType

Sales Details

  • salesId (primary key)
  • pId (foreign key)
  • userId (foreign key)
  • pName
  • pType
  • transactionMonth

Commission Structure

  • commissionId (primary key)
  • productTypeId (foreign key)
  • startRange
  • endRange
  • commissionPercentage

User Commission (Query Auto Generated Table)

  • transactionId (primary key)
  • userId (foreign key)
  • productTypeId (foreign key)
  • userAmount
  • transactionMonth
  • pCost
  • userQuota
  • pType
  • commissionPercentage

APIs

Authenticate

  • Post Mapping to return JWT.
{
    username: "user",
    password: "password"
}

Admin

  • Get Mapping to find all users in the database.
  • Get Mapping to find user by ID provided.
  • Post Mapping to create user.
{
    "username": "username",
    "name": "Full Name",
    "password": "password",
    "userQuota": 50000
}
  • Put Mapping to edit user by ID.
{
    "username": "newusername",
    "name": "Full Name",
    "password": "password",
    "userQuota": 48000
}
  • Get Mapping to find all products in the database.
  • Post Mapping to create new product.
{
    "pName": "Honda",
    "pCost": 72000
    "pType": "2 Wheeler"
}
  • Post Mapping to add sales details (Upload CSV in frontend). Auto updates the User Commission table when performed.
[
    {
        "pId": 1,
        "userId": 2,
        "pName": "Honda",
        "pType": "2 Wheeler",
        "transactionMonth": "2022-07"
    },
    {
        "pId": 2,
        "userId": 3,
        "pName": "Hyundai",
        "pType": "4 Wheeler",
        "transactionMonth": "2022-08"
    }
]
  • Get Mapping to return commission structure for every product type.
  • Get Mapping to find commission structure for a particular product type within a rage by it's ID.
  • Put Mapping to edit the commission structure by ID.
{
    "productTypeId": 3,
    "startRange": 28000,
    "endRange": 45000,
    "commissionPercentage": 6
}
  • Get Mapping for forced commission change. Updates the auto calculated commission amount of a user by force using Query.
{
    "userId": 2,
    "transactionMonth": "2022-07",
    "userAmount": 34000
}

Salesman

  • Get Mapping to find all sales by every salesman in the database.
  • Get Mapping to find their sales based on the month.
{
    "userId": 2,
    "transactionMonth": "2022-07"
}
  • Get Mapping to display all the sales carried out by the logged in user.
  • Get Mapping to display commission amount and user quota in bar chart form for the logged in user.

Demo

demo.mp4

Application Properties

server.port = yourPreferredPortNumber

spring.datasource.url = jdbc:mysql://localhost:3306/yourSchemaName
spring.datasource.username = yourUsername
spring.datasource.password = yourPassword

Development

  • Frontend
npm install
  • Backend
mvn install

Build

  • Frontend
npm start
  • Backend
mvn spring-boot:run
You might also like...

The Basement SDK has sensible defaults and flexibility to allow you to get the data you want efficiently and effortlessly.

Basement SDK The Basement SDK has sensible defaults and flexibility to allow you to get the data you want efficiently and effortlessly. Installation B

Dec 6, 2022

Open-source CD platform that helps developers to deliver applications efficiently by simplifying software releases and operations in any environment.

Open-source CD platform that helps developers to deliver applications efficiently by simplifying software releases and operations in any environment.

dyrector.io - The open source internal delivery platform Overview dyrector.io is an open-source internal delivery platform that helps developers to de

Jan 3, 2023

A quotaless, partially limitless, and fast Node.js Multiplayer Piano server implementation that efficiently makes use of the protocol and uWebSockets.js

speedymppserver A quotaless, partially limitless, and fast Node.js Multiplayer Piano server implementation that efficiently makes use of the protocol

Oct 14, 2022

Place your Bob-ombs so they surround opposing Bob-ombs. Captured Bob-ombs change color and join your team. The player uith the most Bob-ombs at the end is the Hinner.

Place your Bob-ombs so they surround opposing Bob-ombs. Captured Bob-ombs change color and join your team. The player uith the most Bob-ombs at the end is the Hinner.

Bob-omb Reverse with Arduino MKR 1010 Wifi 🐦 @cbarange & @j-peguet | 5th January 2022 Intro Docs MQTT with Arduino 👉 https://docs.arduino.cc/tutoria

Jan 13, 2022

Guardian - Securely Store and Share your Dev Secrets with your team

Guardian - Securely Store and Share your Dev Secrets with your team

Guardian Securely Store and Share your Dev Secrets with your team Presentation About The Project No more sharing private development secrets over inef

Oct 18, 2022

This is a full-stack exercise tracker web application built using the MERN (MongoDB, ExpressJS, ReactJS, NodeJS) stack. You can easily track your exercises with this Full-Stack Web Application.

Getting Started with Create React App This project was bootstrapped with Create React App. Available Scripts In the project directory, you can run: np

Dec 25, 2021

A UI library by WeChat official design team, includes the most useful widgets/modules in mobile web applications.

A UI library by WeChat official design team, includes the most useful widgets/modules in mobile web applications.

WeUI - tailor-made for WeChat web service 中文版本 Introduction WeUI is an WeChat-like UI framework officially designed by the WeChat Design Team, tailor-

Jan 2, 2023

Customise this Figma plugin template for your own design team.

Design Toolkit Customise this Figma reference plugin to provide useful resources and automations for yourself or your team. Inspect the code to see ho

Jul 7, 2022

Vision is a complete project manager where you can colaborate with your team. Everything is still in development phase.

This is a Next.js project bootstrapped with create-next-app. Getting Started First, run the development server: npm run dev # or yarn dev Open http://

Jun 4, 2022
Comments
Owner
Tarun Gowda
Tarun Gowda
Veselin Petranchev 2 Oct 11, 2022
Team Empire offers an innovative and intuitive game based on puzzles solved by two players working in a team.

Team Empire offers an innovative and intuitive game based on puzzles solved by two players working in a team. The user can create an account to monitor their results and achievements. The whole idea of the product is to make the player think and develop his logical thinking.

Vocational school for computer programming and innovation 14 Aug 8, 2022
A Twitter bot that tweets all ERC-721 NFT sales for a given contract 🤖

NFT Sales Twitter Bot ?? This was made to succeed my Opensea Sales Twitter Bot repo; while relying on the OpenSea Events API is simpler, it doesn't in

Daniel Griffin 73 Jan 2, 2023
👕 The project is an E-Commerce called DevShop that simulates a sales site which has men's and women's clothing, jewelry and electronics.

DEVSHOP • E-COMMERCE O projeto é um E-Commerce chamado DevShop que simula um site de vendas a qual possui roupas masculinas, femininas, joalherias e e

Kayke Alves Fujinaka 18 Sep 19, 2022
NFT sales monitoring bot for the Ethereum blockchain. (ERC721, ERC1155)

Ethereum-NFT-Sales-Bot NFT sales monitoring bot for the Ethereum blockchain. (erc721, erc1155) Table of Contents Click to expand Market Coverage GIF G

null 33 Dec 13, 2022
complete laravel 9 pos sales project - برنامج ادارة المبيعات والمخازن والمشتريات والحسابات وخطوط الانتاج لارافيل 9 ❤ لاتنسونا من صالح الدعاء

About Laravel Laravel is a web application framework with expressive, elegant syntax. We believe development must be an enjoyable and creative experie

null 49 Jan 2, 2023
Offer a translation system to your users! a plugin capable of translating your website, simply and efficiently!

TranslateForMe Offer a translation system to your users, a plugin capable of translating your website, simply and efficiently! View Demo · Report Bug

Eduardo Castro 3 Jan 12, 2022
A simple, no-hassle library for efficiently querying Your Enrollment Services.

@vanderbilt/yes-api A simple, no-hassle library for efficiently querying Your Enrollment Services. Created by Dylan Hanson (jovialis) NOTE: THIS MODUL

Dylan Hanson 2 Jan 25, 2022
This tool allows you to draw up plans for facilities from Foxhole's new Inferno update. It takes power and resource needs into account to help you efficiently design your facilities.

Foxhole Facility Planner This tool allows you to draw up plans for facilities from Foxhole's new Inferno update. It takes power and resource needs int

Brandon Ray 23 Dec 23, 2022
Chrome Extension that enables you to read 30% more efficiently and easily!

Bionic Reading Extension that enables you to read 30% more efficiently and easily! About The Project All credits for this method go to https://bionic-

null 22 Jan 1, 2023