Hello Dominio and welcome to UE4!
The simplistic answers to your questions…
Maybe, Yes, and No… Hows that for a simple honest answer! lol
Maybe - because the questions you have asked, are general and wide ranging in nature, yet looking for a specific answer. And no I’m not denigrating your questions, it’s just that they are, what they are.
Yes - Because, you will have access to the engine source code, hence and bend it anyway you wish, and/or at least understand as much or as little as you wish about the engine.
No - Because, if one thinks or desires that what your considering is going to be done by slapping together a blueprint, and a few thousand lines of C++ code, I think the disappointment factor will be very high.
The UE4 engine is very powerful, this cannot and should not be denied, yet, this power comes at a cost. Which is the learning curve for the engine itself. When I say engine, I mean exactly that (i.e. i’m not talking about Matinee, or UMG, or Slate, or Blueprints, etc). I"m talking about the actual engine, how it deals with data internally, how are “objects” actually represented in the “game” (yes, I know you don’t wish to make a game, but a app, but remember to the engine, it’s neither a game nor a app, it’s just code and data)
The engine can be frustrating as all get out at times, as well as the build enviroment. Yet with all this negative sounding things I have said, It’s rewarding as well, eh such is life.
So can you build what you wish using UE4, I have absolutely no doubt that you can, and I mean no doubt at all. The question really comes back to you more than anything, is how deep are you willing go down the rabbit hole? Will you take the blue or the red pill? lmao
One of the first things you will wish to do, is to make sure in your code, that you draw a very sharp line, of, This is my code, and that is engine code, and move all your external references into your code, and probably set them up as plugins as well. This helps to keep the line drawn. Then spend some time, looking at the API documentation, to see how the important classes are hooked together (AActor, USceneComponent, UPrimiteComponent, Level, etc). Then get a good feel for blueprints, which are a fantastic way of quickly exploring the api of UE4, and very good for logic, yet you don’t really want to push them for data manipulation (sure if an array has 10 elements at that’s it, no issue, but if that array has 5000 elements, umm well your going to want any broad manipulation of that array done with one call into some C++ code).
Be sure to make yourself a very quick and dirty prototype of what you wish your end product to be. It doesn’t have all the bells and whistles of course, just the main features you are after. This can give you an overall “taste” of using UE4, and able to ask the user community very specific questions when you run into the proverbial brick wall. This way, when you are ready to start creating the actual product, you will have a feel where the potholes are.
Good Luck, and hope you have a wonderful day!