NB: This project leverages on the Flutterwave Payment Gateway and is currently set to the test enivronment, all accounts and cards should be associated with the flutterwave's test accounts and cards.
You can check out the project live here
The frontend of the project was built with Javascript as a language on React and Bootstrap & React Bootstrap for styling
- Microsoft Visual Studio Code
- Github (Version Control and CI/CD)
- Netlify App
This project is written from ground up using C# as language on ASP.NET CORE 3.1 Framework and MSSQL for database system
- Microsoft Visual Studio 2019
- Github (Version Control and CI/CD)
- Heroku App
Jumga is a multi-tenant marketplace created for sellers, merchants, brands and anyone who want to create a simple hassle free online shop for the success of their brand, this includes online presence, product listing and management, fast, easy and safe payment integration, shopping cart, orders and delivery services.
- Secure User Registration and Authentication
- Shop Creation
- Unique Shop URL
- Automatic Payment Integration with flutterwave
- Product Sale
- Shop and Product Management
- Product Image Gallery View
- Orders History
- Shopping Cart
- Cart Item breakdown
- Riders Delivery Assignment
A seller creates a shop through the registration process, proper information is gathered for the creation of the shop. Shop is created and given a unique shop URL for access from customers, all shop newly created has a flag "isApproved" that is set to false; With the "isApproved" flag set to false, user's unique shop URL returns 404 to customers and anyone who visits, no rider is assigned and no flutterwave subaccount for payment integration would be created.
There is a notification on the Shop Admin Dashboard that prompts the shop to be approved with a "approve button", approval is made after a token of $20 is made to the Jumga Platform via Flutterwave secure payment gateway, after a succesful transaction the flutterwave transaction verification endpoint is called via our backend in order to fully verify the transaction (transaction id, currency and amount) and give value to the set shop. The shop is approved, a Flutterwave Subaccount is created on the Jumga Platform, a rider(already onboarded on the database) is assigned to the shop and the shop URL is active for public use.
Shop Admin can add products to be displayed on the shop. Product details include (Product name, quantity, description, price, delivery price and a picture of the product) product is saved on the database according to the respective shop.
Customers can buy single and multiple items(Carting) Customer KYC is collected as the payment is initialized, the prices of items and delivery amounts are pre-calulated and is passed to the Flutterwave Payment Checkout Modal, the shop's and associated rider's flutterwave subaccount Ids are retrieved from the database or secure session storage and is assigned to the subaccount array section of the flutterwave inline script, product prices and delivery amount are summed up and is split according to the proper percentages and assigned to their respective subaccounts(passing the exact amount, with the appopriate options). The flutterwave checkout modal is displayed and payment is made by the customer, on succesful payment , the Flutterwave transaction verification endpoint is called again, if the verification is successful, value is set in the database(logging the orders in the database, deduction of product units in shop and populating shop and rider balances).