What is this So you may be wondering what my program is and why I decided to do this. Well for starters, my program is basically a viewer for your own iModels, except it should be faster than normal. The iModels are basically the "currency for information exchange" (Bentley). What this means is that iModels allow for the easy transfer of information, construction, etc. You may be wondering what can make this thing unique. To name a few unique reasons, iModels are open to see through various interfaces, they are flexible, meaning they can conform to a specific standard, and finally they are portable, which means they're purpose is for sharing and distribution. A lot more information in this tab link.
what's in my code My code consists of almost everything that I don't know of; the backend, the frontend, the common file, the UI. The backend of the code consists of 'snapshots' and the 'the @bentley/imodeljs-native module'. The snapshot creates a static point in time for each iModel that cannot be changed after creating it. The use of this is to export the iModel at a certain point in time to archive it. The other backend, the module, is very useful since it is able to access the iModel using SQlite. It's basis use is to implement authorization, which is BENTLEY SYSTEMS'S MAIN COMMERCIAL MOTIVATION. For a web application, the frontend outnumber the backend. The widgets that are part of the iModel api are very useful in displaying the iModel.
errors The entire time coding this, I've gotten so many errors. I think 3 hours of the time here was spent trying to fix my errors. Even the people at Bentley System's were stumped sometimes. First off, I received the error when I couldn't download the dependency when running the code "npm install." This happened when I downloaded the wrong version of Node.js and the dependencies wouldn't work with the newest version of it. Even when I ran it again with the right version of Node, it still wouldn't download. It turns out that my old files wouldn't delete at all, so the people at Bentley System's had to manually delete it. The next challenge was the directories, since I couldn't load in without the right login. In Bentley Systems, one has to log in to work on the iModel, but for me, it would just be stuck at the login phase. That can be explained at the configurations.ts not at the correct values, which was an easy fix. The next time it didn't work, it was just the wrong directory. My final problem was also my unsolved issue as well. I couldn't figure out why I couldn't log in to my Bentley System's account at all through electron. Whenever I had to log in through electron, it would open a separate window and give me a 400 error code. I asked people at Bentley System's if they have an idea of how to fix it, but they were baffled too. This is still an issue I haven't resolved yet, so I just stuck with a web application.