So, I know core Java skills enough to make a full application in Swing, but I'm moving onto web development, but what I've found most useful instead of just going through someone's tutorial on YouTube or a paid service and learning everything lesson by lesson, to start off with a goal and learn the relevant skills to make it happen.
In the photo below, what this basically will be is a website that can schedule activities for summer camps. There is the date, and within the day a session of activities, and within a session individual activities for that session. Once it is scheduled, it will be able to have a list printed for each activity, a full day schedule, and a schedule for each individual camper and counselor. It will also check to make sure everyone has an assignment each session, or for staff an assignment or a break. It will throw an error alert with multiple attempts to sign one camper up for the same activity. For example, one year at my camp, everyone wanted to do water slides, but there were only 20 spots per day for each session combined, so everyone could only do it once, but we had to count on them telling the truth that they hadn't done it yet.
Also, we are trying to make it so instead of one signup table where they write them all down by hand, to have different staff members able to go to the cabins during downtime and sign each camper up for the day, so I need it to be able to update on someone else's device in another cabin in real time to make sure capacity isn't reached, and that when one camper is added to an activity from one person's computer, it shows up in real time on a computer where someone else is located in another cabin.
"Real Time" is a relative concept, especially over the Internet. But you can have live updating if you're willing to accepts some latency. You'd want your client side to use AJAX to keep polling the server, mostly likely, although if everyone's Thoroughly Modern, perhaps you could use "push" updates from the server.
On the server side, since you're expecting so much from the client, probably ReST services for the AJAX callers would be best, although you'd also be serving up the initial View (web page). The web page could probably be a JSP, although Spring does have more potent web frameworks, plus it also works with non-Spring frameworks (I use JSF with Spring Data, for example).
Speaking of Spring Data, you can use that on your backend. Although traditionally one might use a SQL DBMS (and maybe JPA) for the persistent data store, I had a project very much like this and used Neo4J. Unlike SQL DBMS's, which are more about data and tables and their relationships, Neo4J is a graph database, where the relationships between the data are as important (or more so) than the data items themselves. It has its own idiosyncratic query language, since stock SQL isn't well-suited for that), but it's kind of fun, and there's a Spring Data component that supports it.
Whether you need Spring Boot is another matter. Spring Boot is designed to make it easy to install and bring up single-app servers. If you wanted to make your webapp runnable on a multi-application webapp server, you'd simply produce a WAR without Spring Boot.
An IDE is no substitute for an Intelligent Developer.
posted 2 weeks ago
I created a cabin assigned program in Swing that has mySQL on it. Can it be converted to the graphical one you suggested?
Go learn how to build a Hello World React App. (Client Side)
Go learn how to create a MySql local database. Learn how to create a schema, insert records, learn how to select records efficiently. (Database)
Go learn Node.js and create a Hello World server-side application. Learn how to talk to your local database. Learn how the client and server side apps work together. (Server side)
Go learn how to use bootstrap-react to make your app pretty on any device. (HCI)
Lastly, go learn AWS so you can deploy your app to the cloud. (Deployment)