Ah, now we're getting somewhere. For the record, I absolutely agree that your solution, though very vague and high-level to the point of nearly being meaningless, is a necessary ingredient in the solution, but I would add this to it. Instead of continuing to keep the "communities" separated, blend them wherever and whenever possible. Keeping them separated perpetuates division, as the majority can continue to teach their children that the minority can't succeed without the majority's help, and that there's something "other" and "less" about them without counter examples living next door or down the street. At the same time, the minority can continue to foster grievance in their children, blaming the majority for their situation and avoiding responsibility to make the very most from the opportunities available, also without counter examples living next door or down the street.
Racists on both sides of the coin need to be shouted down by louder voices. Times have changed and continue to change. We are not living in the slavery or Jim Crow era anymore and shouldn't act like we are. We both know of those who have advocated for sanity, peace, and unity, only to suffer estrangement from their own (speaking of the terms "N-lover" and "Uncle Tom"). And you are part of the problem if you stop listening just because someone is saying things the "other side" wants to hear, without bothering to consider if there is truth in what they are saying.
I would also add that you can never completely eliminate racism. There will always be suspicion and distrust of "them" because they look or act different.