My head is spinning

I am looking to get into coding, however I don’t know where to truly start. I am a wordpress hacker at best with very limited python / ansible experience for automating things network related. I am a network engineer by trade, now into management. This all the side I have a family auction business and I would like to build my own auction platform and I simply don’t full understand the ins and outs of all the languages / frameworks / etc. I have been thinking about using nodejs due to the fact that I want the page to refresh from the server side without the client having to do anything on there end. Think when user a places a bid on an item user b sees the update without having to refresh their browser. Then there are feature like credit card integration, email & sms intergration, etc… I would like to us bootstrap to design the feedend. With all this said what makes nodejs different from or php, or django different from php or larvel, etc… I have also looked into using tools like wappler or bubble but I feel like if I don’t understand the ground work I am hurting myself in the long run.

Some of the other challenges are database design, I will be using MySQL I feel like I would need a table for users, auctions, products, invoices, bids, sellers, bidding increments, commission scale, sellers, sellers statements, etc…

Can I use different frameworks for different parts of the website? Any help or guidance would be greatly appreciated

Heya. I don’t know the answers to your specific questions, but if you are already in wordpress, you can pretty much everything you mentioned from there. Wordpress is written in PHP, which can be run on your average host (unlike Node which is JavaScript and needs particular hosts that run it). PHP is also helpful in that its interactins with MySQL are well-established and well-documented, with lots of libraries and existing code. I would be strongly looking into getting good at PHP and learning Laravel given what you’ve mentioned.

You can do all of this in JavaScript, too. JS is a very hot language that started off as a script for basic interactivity on websites (form validations, gadgets, animations, etc), but has spread out and now is on the server (Node) and has an extremely active developer base. IMO it is is a little tricky to get started off with JS in the server and I find it intimidating (although fun).

As far as the refreshing part, I am not sure about that, but it sounds like something JS would do well (not sure about PHP). JS has the ability to update only parts of the page (think Google Maps), and this is usually referred to as AJAX.

I’m pretty sure PHP can do AJAX, too, not sure though.

1 Like

You’ve picked a hard thing to do. [I’m assuming you understand the concepts here as they’re to do with networking] Ideally, you need very low latency coupled to very high concurrency. Normally you get one or the other.

The frontend I suspect you can hack together with your current skills – it doesn’t need anything terribly special. To do real-time updates:

This would be a browser API feature + either HTTP request/responses or Websockets, nothing to do with Node – any language will work server-side. The client (browser) has to do something, it isn’t automatic. It doesn’t matter what language you use, you can

  1. send events from the server (SSE), and in the client (browser JS code) you listen for those events and do something (for example decrement a countdown). Just needs an event listener in the client side, but needs the server set up correctly. Or
  2. you can do polling, where your JS code on the client sends a request to the server for new information every {insert time period}. That’s easiest to implement, but also tends to leak memory. Or
  3. you can use Websockets – client opens a websocket connection to the server, and it stays open, and the server and client can exchange data. Normally needs a library (socketio for example) to abstract away the boilerplate.

None of those depend on a certain backend, and the front-end can be just an HTML page with some basic JS (or it can get as complex as you want…).

The hard bit is synchronization and timing between clients and the server, as it’s [presumably] really important that auctions are fair. One of the above three options coupled to something in the server which handles an auction is going to be the key part. You have a set of users, they join an auction, they can send bids to the server and the server needs to count down and then have a winner. The database type & data structure are important, but they’re an implementation detail