• Post Reply Bookmark Topic Watch Topic
  • New Topic
programming forums Java Mobile Certification Databases Caching Books Engineering Micro Controllers OS Languages Paradigms IDEs Build Tools Frameworks Application Servers Open Source This Site Careers Other all forums
this forum made possible by our volunteer staff, including ...
Marshals:
  • Campbell Ritchie
  • Liutauras Vilda
  • Bear Bibeault
  • Jeanne Boyarsky
  • paul wheaton
Sheriffs:
  • Junilu Lacar
  • Paul Clapham
  • Knute Snortum
Saloon Keepers:
  • Stephan van Hulst
  • Ron McLeod
  • Tim Moores
  • salvin francis
  • Carey Brown
Bartenders:
  • Tim Holloway
  • Frits Walraven
  • Vijitha Kumara

What would be the most useful frameworks and libraries to learn for this kind of program  RSS feed

 
Ranch Hand
Posts: 242
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
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.  

I'm assuming for client side that this will require Angular Javascript?  What kind of server side storage would this need to access the database in real time?  This will have logins with user types of administrator who can create, edit, delete anything and everything.  It will have users with authorization to assign and un-assign, but not create or delete any activities for the day, and users for the counselors who can only read each schedule and lookup where a particular camper is supposed to be if they forgot.
SpringBoot?  
activity-template.png
[Thumbnail for activity-template.png]
 
Bartender
Posts: 20562
120
Android Eclipse IDE Linux
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
"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.
 
Nathan Milota
Ranch Hand
Posts: 242
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
I created a cabin assigned program in Swing that has mySQL on it.  Can it be converted to the graphical one you suggested?
 
Tim Holloway
Bartender
Posts: 20562
120
Android Eclipse IDE Linux
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator

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.
 
Nathan Milota
Ranch Hand
Posts: 242
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
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.
 
Greenhorn
Posts: 11
1
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
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)
 
Tim Holloway
Bartender
Posts: 20562
120
Android Eclipse IDE Linux
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator

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.
 
You totally ruined the moon. You're gonna hafta pay for that you know. This tiny ad agrees:
global solutions you can do in your home or backyard
https://coderanch.com/t/708587/global-solutions-home-backyard
  • Post Reply Bookmark Topic Watch Topic
  • New Topic
Boost this thread!