what you should do is keep the electoral college, but stop making it a winner gets all competition state by state. if they win 76% of california, they get 76%ish of the electoral votes from california. also make it so registering as a candidate is done at the federal level and applies to every single state, rather than each state having its own registration requirements (designed mostly to dick over 3rd party candidates). also get rid of that thing that allows unlimited campaign contributions. put a $1000 cap on federal campaign contributions per year. this will fix none of your problems, but will make it appear more democratic and palatable. you're welcome.
Canada