I listed some sentences from your project description, and added my thoughts on them.
"create user names, passwords and PIN to an existing [login to view URL]"
- One function in the code, complexity depends on your database format, if you have any planned.
"Both the user name and password must be 5 characters long, with the PIN being a 3 digit number. "
- Simple regexp check, question: why would you limit these things to 5 chars or 3 digits ? 3 digit without rate limiter can be brute forced in no time. Question: do you want to have a rate limiter on login ? (most probably)
"On creation of users (which are unique) user are prompted to enter their new password twice, the script will check if the same password was entered twice"
- It's just a loop, with string matching, should use passwd input, so no chars are visible on the screens or some chars like "*"
"Once logged into the system, user can have to option to view their existing logs, add additional comments to their log but once a log has been saved it cannot be removed from the log"
- Is this the part of the other side, or you want to have this whole functionality on bash ? While can be done in bash, maybe not the best idea to do so. If you really want to get this part into "my part", than I would recommend to use python instead. Anyway not impossible to write, but will result a very complex and hard to maintain script... or you need to clarify this function better for me.
I hope we can work on this together. Br, Peter.