How to automatically add support and "base" to the model I am printing?
This program type you seek for is called a slicer. However, you got to manually choose support structure and rafting - the tricky part is getting the configuration right for your build. To my knowledge there are no slicers that decide automatically to raft unless you configure to raft always and you have to enable support.