Female bettas get along better in communities than males do. Never put a male in with another male or a female-- will result in a fight to the death. (Breeding is done very carefully and there is usually damage done to both fish in the end.)
Tetras will often nip a male's fins, so not a good tankmate usually. Male guppies are also a bad idea with male bettas due to the fins (the betta may attack). Shrimp (if large enough and you don't mind babies becoming food), cories, and otos are generally safe tankmates and good for small aquariums.
I would say a 5gal tank is the minimum for a happy betta... they do like room to swim around.
It's best to do silk plants or real plants with a betta as their fins can be ripped by plastic plants. Am taking care of a male betta right now with fins that are a bit shredded from the plant in his old tank-- he's loving the tangle of real plants I put in for him.