I am assuming by "RStudio package", you just mean a normal R package. What you are trying to accomplish is not totally clear to me, do you want to make a package for your shiny app because you want to be able to duplicate certain functions in several apps or are you just trying to deploy it to a shiny server?
If it is the former, then an r package would be the way to go. Maybe the easiest way to write a shiny package would be to write modules that perform certain tasks. Since modules are just functions, the package development would work the same way that normal package development does. You can read more about modules here
However, if it is the later, then you do not "have to" create a package to do this. You would just need to put the shiny app onto a server with shiny server on it.
As far as allowing users to upload files and have pre defined processes done to the data, this is all possible without having to create a package. You can use
fileInput() for this.
So in conclusion, I would say that if you want to duplicate the same thing across multiple apps then writing a package may be worth it and could save you time in the long run. However, if this is for a single app, it may require more effort than is necessary.