Have look at N1MM+ it does everything you ask and works very well. There's a section in the manual regarding running with WSJT-X, when you select log qso in WSJT-X it is sent to N1MM+ it'll do the dupe checking and upload to internet logging systems etc.