Hi all,
I'm a programmer with no web dev experience. I know how networks work (IPs and ports and protocols and all that) and I have some security knowledge (so I'd know it's important to do string validation and all that).
I also know how to set up Linux servers, secure them, serve them over TLS with CertBot, and I've also run web apps such as Jupyter or Gitlab from those servers.
I have some simple projects I want to do, but not knowing web-dev is getting in the way of that. I know how to serve very basic HTML+CSS websites, but that's it.
So, I want to make a very simple four-function calculator. (Two text boxes, four buttons for four operations, sent to the server, which returns the result of the operation.) I know this can be done entirely in client-side JavaScript, but I want to learn to do this server side.
I understand there are a lot of Javascript frameworks, like React or Node.JS. I don't really know how to choose one or what to use though.
So, I'm wondering, if you (the experienced web dev) were to make this project, what tools/frameworks/etc. would you use? Should I use JavaScript on the server-side as well, or is it fine to use a language of my choice (i.e. Python)?
I'd imagine the stack to look like this:
[ Ubuntu/Linux server | Python backend, taking in and validating strings, and serving dynamic webpages | Static webpage served on something (Apache??) ]
If you have links or suggestions I'm open to them!! I won't be needing to connect this to a database or anything, so there's no SQL server attached here.
musou wrote (edited )
if you're already comfortable with javascript, i would suggest express, but if you're totally new to the web dev game, i would suggest something like django or rails as they tend to be more "batteries included" and both python and ruby have less "gotchas" in terms of weird edge-case behavior than js does.
my all-time favorite web framework is actually phoenix, which is written in a newer language called elixir that runs on the erlang VM. this is a slightly more esoteric choice, but it's far from unproven technology (it is used at many companies you have probably heard of), and phoenix has a lot of nice features that i now miss any time i go back to the other choices i've listed here.