First, I apologize for the length of this post, but I think it's important to understand where I'm coming from and what I'm trying to accomplish before you offer suggestions.
Now I know this is an ambitious undertaking, but I have it set in my head that I can do this and I think that some of you out there can help point me in the right direction. My goal, as a "beginner programmer" (I learned Basic, Pascal and Fortran in the 1980's, and learned a little Python and Swift in the past two years), is to learn what it takes to build a website/web application to help my wife manage a work schedule for her employees.
My wife is a nurse practitioner and manager at a large hospital, and she is tasked with creating the work schedule for the 15 or so employees every month. She has been doing this "manually" for the past 5 years or so, and by manually, I mean making a calendar table in Excel (now in Numbers on her Mac) and putting the names in place for each date, and then noting whether they're working day shift, night shift, or flex shift (sort of in between day and night). The parameters are that there must be 4 employees working every day shift, one employee working each flex shift, and two employees working each night, during the week. On weekends and holidays, there are two employees working day shift, one employee at night, and no flex shift. Also, no one can work more than 40 hours per week (each shift is 12 hours), no one can work consecutive day/night shifts (i.e., no one can work more than 12 hours at a time), no one can work more than 3 consecutive days, and then there are specific "day off" requests for each employee each month. Finally, the nights and weekends have to be distributed as fairly as possible among the employees. She goes CRAZY doing this each month, and it occurred to me that there should be a way to automate this as long as I can set up the algorithm correctly. I want to have the program randomly fill in the schedule, while following the rules and parameters that my wife sets. Then, she should be able to manually move people from one shift to another as she sees fit, or as requests for days off come in, etc.
So, what I'm thinking is that it would be BEST as a web application, so she can have "managerial" access to the data, and the employees can have a lower level of access (to be able to put in day-off requests, or to request to work certain days, or even to trade days with other employees). So, the data would be stored on the web server, where the back end application would be running and managing the logic and parameters I discussed above, while the front end would be programmed to make it a smooth and easy interface which would maybe even LOOK like a calendar table in Numbers or Excel (to her), and would allow her to print or export each month as a spreadsheet, perhaps.
I realize this is pretty complex and that I don't know jack about any of this, BUT I also believe that anything is possible. And since she's been doing this for five years, there's no real time limit since she can just continue doing what she's doing. BUT, I think she'd be thrilled to see me come up with a working solution to her problem. Now, I realize there are many off-the-shelf solutions out there (like WorkSchedule.net, Shiftboard.com and ScheduleAnywhere.com), but they really are a little TOO robust for what I'm looking for. I actually tried a few, and the employees of those companies with whom I spoke had a hard time understanding my specific parameters and couldn't seem to get their systems to do exactly what I wanted. So, I'm going with the old adage...if you want something done right, do it yourself!
That being said, the main thing I need help with at this time is someone to point me in the right direction. I want to learn to be a GOOD web developer...not just learn to copy some guy in a video and make a "google-like" search engine, or make a "twitter-like" social network. I want to make THIS web application and I want to learn enough about this stuff to figure out a solution on my own, with maybe a little help along the way from folks like yourselves on sites like this, StackOverflow and/or GitHub. I THINK I need to learn HTML, CSS, JavaScript, Ruby, SQL and PHP (from what I've read). Do I need all of that stuff? Is there anything else I should learn in addition to what I mentioned? Where should I go first?
I have a subscription to Lynda.com, as well as Treehouse, and I did get a bargain price on Rob Percival's Udemy course "The Complete Web Developer Course - Build 14 Websites" (version 1.0 of that course) for only $10, but I haven't even looked at it yet. Someone else told me to go to The Odin Project and follow the online courses there. So, there's a ton of information out there, but I want something that's pretty complete and thorough and not more time consuming than necessary. Any suggestions?
Now I know this is an ambitious undertaking, but I have it set in my head that I can do this and I think that some of you out there can help point me in the right direction. My goal, as a "beginner programmer" (I learned Basic, Pascal and Fortran in the 1980's, and learned a little Python and Swift in the past two years), is to learn what it takes to build a website/web application to help my wife manage a work schedule for her employees.
My wife is a nurse practitioner and manager at a large hospital, and she is tasked with creating the work schedule for the 15 or so employees every month. She has been doing this "manually" for the past 5 years or so, and by manually, I mean making a calendar table in Excel (now in Numbers on her Mac) and putting the names in place for each date, and then noting whether they're working day shift, night shift, or flex shift (sort of in between day and night). The parameters are that there must be 4 employees working every day shift, one employee working each flex shift, and two employees working each night, during the week. On weekends and holidays, there are two employees working day shift, one employee at night, and no flex shift. Also, no one can work more than 40 hours per week (each shift is 12 hours), no one can work consecutive day/night shifts (i.e., no one can work more than 12 hours at a time), no one can work more than 3 consecutive days, and then there are specific "day off" requests for each employee each month. Finally, the nights and weekends have to be distributed as fairly as possible among the employees. She goes CRAZY doing this each month, and it occurred to me that there should be a way to automate this as long as I can set up the algorithm correctly. I want to have the program randomly fill in the schedule, while following the rules and parameters that my wife sets. Then, she should be able to manually move people from one shift to another as she sees fit, or as requests for days off come in, etc.
So, what I'm thinking is that it would be BEST as a web application, so she can have "managerial" access to the data, and the employees can have a lower level of access (to be able to put in day-off requests, or to request to work certain days, or even to trade days with other employees). So, the data would be stored on the web server, where the back end application would be running and managing the logic and parameters I discussed above, while the front end would be programmed to make it a smooth and easy interface which would maybe even LOOK like a calendar table in Numbers or Excel (to her), and would allow her to print or export each month as a spreadsheet, perhaps.
I realize this is pretty complex and that I don't know jack about any of this, BUT I also believe that anything is possible. And since she's been doing this for five years, there's no real time limit since she can just continue doing what she's doing. BUT, I think she'd be thrilled to see me come up with a working solution to her problem. Now, I realize there are many off-the-shelf solutions out there (like WorkSchedule.net, Shiftboard.com and ScheduleAnywhere.com), but they really are a little TOO robust for what I'm looking for. I actually tried a few, and the employees of those companies with whom I spoke had a hard time understanding my specific parameters and couldn't seem to get their systems to do exactly what I wanted. So, I'm going with the old adage...if you want something done right, do it yourself!
That being said, the main thing I need help with at this time is someone to point me in the right direction. I want to learn to be a GOOD web developer...not just learn to copy some guy in a video and make a "google-like" search engine, or make a "twitter-like" social network. I want to make THIS web application and I want to learn enough about this stuff to figure out a solution on my own, with maybe a little help along the way from folks like yourselves on sites like this, StackOverflow and/or GitHub. I THINK I need to learn HTML, CSS, JavaScript, Ruby, SQL and PHP (from what I've read). Do I need all of that stuff? Is there anything else I should learn in addition to what I mentioned? Where should I go first?
I have a subscription to Lynda.com, as well as Treehouse, and I did get a bargain price on Rob Percival's Udemy course "The Complete Web Developer Course - Build 14 Websites" (version 1.0 of that course) for only $10, but I haven't even looked at it yet. Someone else told me to go to The Odin Project and follow the online courses there. So, there's a ton of information out there, but I want something that's pretty complete and thorough and not more time consuming than necessary. Any suggestions?