For that I use Anki with the Chinese Support plugin, which is honestly pretty great. It does not only have characters and translation, but also pronunciation both as Pinyin (I think other romanizations can be configured) and audio (which plays on review, great for training your ear and checking your pronunciation), as well as measure words and characters in the opposite set (simplified vs traditional). And it can fill all of those automatically. Then there's stuff built-in to Anki, like statistics that let me know I've learned precisely 2521 unique characters in total, which is great for motivation. (The numbers must go up!)
I guess you will want to keep using your homegrown program, but maybe this can give you some inspiration for features to implement.
eg. 拓展 expand