It’s done!! I’m so excited. LOL. The little application now will take payment via PayPal AND send me an email, and the person joining an email. Since we don’t usually get more than 40 members per year, this will work great. 🙂
You have to set the server listening IP to it’s IP address instead of 0.0.0.0:3002 . The client (Quasar that runs on someone’s browser, not server) has to connect to the nodejs server’s IP address and not localhost.
Thanks for the tips, @dobbel. I also tried to do all those to no avail. What I ended up doing was pulling my last commit and replacing the files one at a time until the project crashed again. It was the strangest thing… it appears as though a newly added comment in the index.template.html file (I’ve been trying many different methods to get my font used in a html canvas to preload!) was crashing the entire app! I have no idea why commented out code would do that but nonetheless I’m back up and running!
Though, to use it before it’s being uploaded and to show the final size properly, you need to create your own component based on QUploaderBase (purpose is to overwrite __add_files method, so you can call the parent method once you resize/compressed the files). I don’t think there is a better way, but it works fine for me.
@cynderkromi Dobbel pointed you in the right direction here. You’ll need to first perform the payment in the browser via paypal. Once paypal responds that it accepted a payment, it will return a payment / transaction id, which you then submit to your own server that in turn sends you an email. I assume you will manually check that you indeed have a payment in paypal at this point before issuing membership, else you’d have to also verify the payment on your server. Just keep in mind if you don’t verify, some script kiddie could submit membership applications without paying, but I wouldn’t worry about that unless you have the dev resources to do server side checking, because it’s probably not a problem unless you’re a high target.
@rhscjohn I had this in my inital router page code (“src/pages/Index.vue”), as this is the only page in the app and contains all of the code and data needed - instead of separating the app screens into multiple pages I used tab panels. I know this might not be good coding style, but with just 900 lines of not condensed code I think it’s reasonably manageable up till now.
I helped myself by removing the lifecycle approach and added a conditional “continue”-button to the start screen, which is checking for a flag variable in LocalStorage instead of jumping to the point where the user left the app automatically.