Problem Statement :
Track : SAS Fat To Slim
For a business owner who has lent the rights of his organisation in the form of franchisees, it is difficult to keep track of the activities of the franchisees including the clients enrolled in it and any royalty they are liable to pay to the actual business owner
Our Solution :
This project is a franchise management system which includes different dashboards for admin as well as the franchise. A Franchise will be able to view data analytics and register clients under their name. The admin will have privileges to register new franchises in addition to everything that a franchise will be able to do. The admin can monitor the revenue and client enrollment of every franchise. This ensures transparency and streamlines the client enrollment procedure.
Notable features include:
Login and authorization via JWT Authentication
Secured, protected routes based on user roles
REST api with Get, Post, Update, Delete, Search, List endpoints
Admin and Franchise dashboard with data analytics and graph
CRUD functionality for both client and franchise models
Search and filter functionality to find specific client or franchise
Detailed client / franchise lists
Franchise Payment Gateway integration using Stripe
Custom error handlers and popups for better user experience
Dynamic UI created using Ant Design component library
The problem statement was very open ended, so coming up with a proper solution was tedious. Due to the nature of the problem statement, it is difficult to verify client enrollments through offline transactions. Our system relies on the franchise owner using the application for registering clients and paying the royalty fee accordingly. However, this can be bypassed by untraceable cash-only transactions.
Payment gateway integration using UPI and netbanking was not possible because all payment gateway APIs such as razorpay and paytm require at least two days for verification. Hence, we used Stripe API for payment gateway.
We also had some node version conflicts as one of the team members was using an older version of Nodejs so we had to work around it.
It was also our backend developer's first hackathon, and since he was inexperienced we faced some issues related to data fetching and processing. We also used Redux for state management but due to not much experience with using the library we faced some issues.
Tracks Applied (1)
Technologies used
Discussion