I am completely new to to MongoDB. In fact as new as that I explored MongoDB for the first time in my life only 3 days back. Taking on the course M001 right now.
My sole purpose to come and explore this database is to look out for alternate database platforms to develop an Asset Management Solution based on J2EE. A solution which manages the complete lifecycle of movable and immovable assets like building, computer hardware, vehicles and just kind of assets.
We have been working on with a java based product CMDBuild and Openmaint (google it to know more about these products), but found that these two products lack much needed flexibility to customize and innovate a custom solution based on these products.
Hierarchical structure (inheritance and polymorphism) is the most important aspect of any asset management system because a new kind of Asset Class is supposed to be created in the system at run time and corresponding database changes and model classes are also supposed to be made available immediately at run time for CRUD operations.
Second important aspect is seamless integration with a workflow system which can help in the aspect of process automation from within the same application.
Third aspect is to have a robust google map based GIS system integration to pin point the marking of an asset geographically.
Fourth is to have a 3D viewer to see the complete connected relationship between all assets. Like a computer kept on which room of a floor of a building situated in a particular complex among numerous complexes.
Fifth is integration of a chart based on-screen dynamic reporting system, using which we can view all statistics live in a dashboard and generate beautiful and professional reports and export it in any file format.
And the last but not the least point is, does MongoDB provides any IDE for application development. I mean an IDE like Eclipse or Springtoolsource ?
So is MongoDB a suitable product to develop such a huge application? If yes, then I would be thankful if some MongoDB expert can show me a path to do that from design and development point of view.