I need a CMS Developer who can use Drupal to build a Point Management System. The system will have the following interfaces.
1- Sign up & Registration: Basic Profile information: First name, Last name, Date of Birth, Email, Mobile Phone, Address (First line, 2nd Line, City, State, Country), Username, and Password. - Registration should support address lookup via Postcode or the first line of an address. - Registration should also support document uploads. - Registration should support links to an external site for ID verification and results returned. - Registration should support password validation - Registration should support email verification before the account can be activated
2- User Login: Registered users should be able to log in using their chosen user name and password - User Login should support password reset - User Login should support 2Factor Authentication via email. - Users should be able to view their account on successful login - Login history should be captured
3- Users Account: On successful login, a user should be able to access their account dashboard, showing a summary of their points wallets by each vendor (or partner) supported - Users account should display total points across all wallets - Users should be able to see reports of all points transactions showing date, transaction type (credit or debit), the number of points, vendor and transaction status (pending or completed), and point balance. - Users should be able to filter reports by date range, transaction type, vendor, and status. - Users should be able to use their points to request e-Vouchers. - Withdrawn points should be deducted from the balance in the respective wallet and reflected in the wallet balance and the overall points.
4- HTML pages: Standard HTML pages for About us, How it works, FAQ, contact us, privacy policy, cookie policy, and Terms and conditions. - There should be a menu at the top - There should be a footer - Logo - Social media links - Partners Logo
PLATFORM ADMINISTRATION There should be an admin interface to manage the entire platform. The admin platform users should have different levels of roles and permissions that decide what they can do. 1- Standard Admin: - a - disable and enable user accounts - b - help reset users' passwords, if needed - c - Have visibility of user accounts and their wallets - d - Search for user accounts - e - See accounts reports and be able to export to CSV. - f - CSV upload and processing of points into central wallets to update vendor wallet balance. 2- Super Admin: - a - Do everything admin users can do - b - Can create admin users, disable and enable them - c - Have visibility of total platform points reporting by date, transaction type (credit or debit), the number of points, and vendor. Super admin should be able to filter reports by date range, transaction type, and vendor. - d - Be able to credit points to all users or a specific user: There should be an interface where the super admin can process points into users' wallets: - e - They should see how many points are available for sharing per vendor, - f - They should be able to select a partner wallet, enter the points they want to distribute from the wallet, select one, more, or all accounts to receive point credit, select the sharing options (default to an equal share), exclude specific accounts from the share if their points are at a certain threshold. Once the set-up is done, click a button to process point distribution. - g - Super admin should be able to process point sharing from multiple vendor wallets at the same time - h - Super admin should see the process status to know when it is completed per wallet - i - The points distributed should be deducted from the balances of the wallets and reflected immediately. - j - All credited recipients should receive email alerts that their wallets have been credited, which wallets, and the new balance. - k - reports should be exportable to CSV.
Please note that some basic tweaks may be necessary to the overall functionality during design. Please accommodate some necessary functionality that may have been missed, which could be called out during design or implementation. Your suggestions will be welcome as well.