I found that the generated tokens are with the address which deployed it
Token contracts typically assign the total supply to the contract deployer, so this is normal. A token contract is a ledger, not typically an owner of assets, so it is sensible to assign the created supply to the deployer who should know what the next step is.
transferFrom function is not working
It probably does. More likely, what you are trying to do with it is disallowed, by design. That could be evidence of the contract working correctly. transferFrom()
is often misunderstood, so consider posting your testing methodology.
https://ethereum.stackexchange.com/search?tab=votes&q=transferFrom
Hope it helps.