Hello John,
I see that you’re very interested in programming and software engineering. You have already projects to show outside of the scope, and my friend, that is the best place to start specially when you’ve been learning on your own using YouTube. I’ve been in your position before many years ago, I know how tough and strange can things feel sometimes so now I’m going to share some of my knowledge that wish somebody told me sooner.
“You can’t make JavaScript run outside of the browser without using a library like NodeJS”
You do need Node to run JavaScript outside of the browser but is it strictly necessary to create Plutus contracts outside of the browser? Remember that a person needs to give you authorization to its wallet and this typically consist on using the Cardano API, which is all in the browser.
A few words on your project. I see that you have described your application before and pointed out links to go over these resources and although you did it with the best intentions, it is not possible to follow without having to spent a crazy amount of time reading the README file to start understanding what is going on. A well designed system is using an already stablished conceptual pattern that allows other people understand your code at glance. Some of these patters are Prototypes, Factory Methods, Singletons, Adapters, Bridges and many more. By using these already tested patterns you will make the application understandable by nature and very easy to test if you implement a test driven development approach that consists on automated testing using software like MochaJS.
You mentioned an audit but has anybody audit that code? I’m sure it could take them years due the spaghetti pattern. This can have disastrous implications. Do you remember Boeing 737 Max planes crashing all the time? “Spaghetti code” was the reason of it, where hundreds of lives perished very sadly.
System Design Patterns by Refactoring Guru
Test Driven Development
Microservices Architecture By Google
Domain Driven Design | Pluralsight Course (100% recommended)
RESTful APIs.
I see that what you want to achieve is to create an RESTful API using JavaScript? You have many options to spin such a common service like that, in less that 5 minutes. You could simply run an express.js backend service and built your routes for CRUD and list operations. Or you could create an entire application (front and back) using NextJs; Damn, you can even purchase a NextJS template for $20 on themeforest.com with everything included and modify your routes.
NextJS
ExpressJS
NPM package manager
Remember, Don’t reinvent the wheel. Try to think if somebody already have a solution like the one you need or if its similar in any way to guide yourself during the development process.
Javascript Agnostic Components
If you’re truly interested in agnostic components (Non system dependent software) take a look at Web Components, which I personally love. Take a look at getting started scaffolding a project (Application automated generator) and also take a look at an awesome library called LitElement. These JavaScript components work on any browser, any framework (React, Vue, Angular, HTML template etc), they are blazing fast native components and its backed by Google.
Open WC | Web Components
Lit.dev | LitElement JS Library
Haunted | Hooks for Web Components
From all this, we have so many subjects that I’m leaving outside of the scope like infrastructure, security, reliability and scalability of the system, which each play a tremendous and important role in the availability of your system.
Best,
Wolfy