You're not a crap mother. You're really not. So very many kids do this.
You need to train her out of this. One way to do this would be to get a playpen for home and every time she bites or hits, put her in it with a firm NO Biting/hitting/whatever. Then turn your back to her and ignore her. Lift her out after a couple of minutes - but NOT if she is screaming, or she will think her screaming is the reason you got her out and will scream to get her own way in everything!!
If she bites/hits when you are out. Apologise to the person she did it to (and parent) and leave, at once, again with a firm NO biting/hitting etc.
She needsto associate biting and hitting with leaving a fun place and with being put in 'isolation' iyswim.
This takes time to sink in, so don't expect change overnight.
Playpen is better than a time out step as you have to stay with them on the step - holding them, usually, to make them stay. This is attention and the aim of the playpen is to remove all attention.
Of course, this is only for when things have escalated. Spotting the warning signs and distracting/removing from the situation before biting happens is preferable, but it's not always possible to predict.