I am learning solidity and developing a contract. The contract will have the external blockchain wallet address of users (mapped with their username) and this wallet will store NFTs uploaded on my contract. for example, i create my account in the contract and then minted an NFT. Now, this NFT is stored in my wallet. so, my question is - How to make a contract that would allow the user to connect their external wallet to my contract, mint an NFT and store it in their wallet?
That's not something that is handled by the smart contract in itself. Your smart contract would be connected to a dApp (a website, which serves as a graphical UI for the smart contract) and the dApp would be the one handling the connection, using libraries such as ethers.js or web3.js, look them up.