Hi Spoorthi,
1.Module List Page: Display available modules with Request and Download buttons.
Request Validation: On clicking Request button to call microflow : Check if an existing request for this module by the user is still pending or approved then sent to admin for approval.
If Admin Approved the module for respective user--call microflow to change status to approved and attribute Isdownloded change to true.(you should add this attribute to module entity).
If user come again check in the module page. If he click the download button it should download. for that you should set button condition to current user Is download =true.
Thanks,