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.
I created a cabin assigned program in Swing that has mySQL on it. Can it be converted to the graphical one you suggested?
Nathan Milota wrote: I created a cabin assigned program in Swing that has mySQL on it. Can it be converted to the graphical one you suggested?
Only conceptually. Spring and the Web are too different to be able to simply re-use much code.
The MySQL would simply be used for importing the camper names and what cabin they are in. I can use another database type to save the state of the activity assignments.
Nathan Milota wrote: The MySQL would simply be used for importing the camper names and what cabin they are in. I can use another database type to save the state of the activity assignments.
The MySQL part isn't what would have to be changed when moving to the web. In fact, most of that part would remain the same.
However, the GUI stuff and the application's file organization are radically different between Swing and web.
Print HashMap to a particular format in Swing that can be printed/copied and pasted?
JList with DefaultListModel is too wide when adding the viewPortView.