A node is a "point" that relays new transactions and blocks.
For example, if a make a transaction from the GreenWallet app, the GreenWallet app will send the transaction to GreenWallet's API. The node(s) GreenWallet runs will broadcast that transaction. The rest of the nodes will relay those new transactions to each other.
Only some of those nodes are also miners. They listen for
- new transactions, so that they could include those transactions in their next blocks.
- new blocks, since every block must reference the hash of the previous block.
An Antminer, which is an ASIC machine, is not a node. It specializes in doing the work given to it. A mining node, today, refers to a pool operator's node.
Additionally, pool operator nodes utilize low-latency block distribution routes such as the Falcon Network. This is to ensure that all miners have access to the latest block's hash. If two blocks reference the same previous block, one of them will be orphaned, which means the longest chain will be following the other block.
Software such as the BRD app or Bitcoin Core can act as nodes and they can directly push their transactions. The difference is that Bitcoin Core has the ability to store the whole blockchain, which most of Bitcoin Core instances do. This kind of node is said to be a full node. Bitcoin.org defines a full node as a "fully validating client". The opposite is a pruned node, which discards irrelevant data.
"User" is not defined for Bitcoin. There are miners, which make new blocks, nodes, which act as transparent connectors between nodes and miners, and wallet clients, which just keep track of relevant balances and transactions. Note that bitcoins aren't located in addresses. Transaction outputs are called unspent outputs, which may be spent with the corresponding private key and the public key of the address.