Grind the shallots, garlic, chilli and salt into a paste using a mortar and pestle or food processor.
Heat the oil in a frying pan. Mix the mince and onion with the spice paste, brown in batches for approx. 3 mins. Combine the soy sauce, oyster sauce, water and sugar, add to the pan, bring to the boil. Return the meat to the pan, heat through. Reduce the heat, add the beans along with all the other ingredients up to and including the Thai basil, cover and simmer for approx. 10 mins., remove the lid, simmer for a further 2 mins.
Rinse the rice in a sieve under cold running water until the water runs clear, then drain well. Bring the water and rice to the boil, cover the rice and simmer over a very low heat for approx. 10 mins., turn off the heat and leave the rice to fluff up in the covered pan for approx. 10 mins. (do not remove the lid). Separate the rice with a fork. Serve with the meat.