Working on a JavaScript idea a simple calculator, as a weekend project, that took a little over a week, I used this post on FreeCodeCamp for the inspiration and help in working through the app.
I created this calculator as an MVP (Minimal Viable Product), a way to get put something together quickly where the customer can work with it. The client then decides on any extra features or changes that need. This will allow the client to get it out and using the app quicker and then you maybe adding updates as feedback comes in from the users.
The other option is to work out everything you think needs to be done, code and design, then submit to the client. At this point any changes they would make could cause you to go back and rework a lot of the app. It would also take longer to be created that means longer before it is used, meaning longer that it will add value to the client.
The HTML and CSS is mostly 100% from the link above, this is about figuring out code and not a HTML/CSS project, there was a few tweaks I did alter to them. I also combined the CSS into the HTML to keep the number of files low.
As an MVP and keeping it simple into what the client needs; currently the app cannot string the calculations together so you can’t do: 1 + 2 + 3 = 6; you would need to do 1+2=3+3 = 6. Now if this was something that was requested as a need for the app to begin with you would need to add that feature before showing them. This can be something that you inform the client about; but in doing so you could cause more work than what would be needed. Maybe the app only needs to do one set of calculations or needs to show a total each time to be entered. Letting them know about this they could say ‘yes it’s needed’ but may never actually be used. Causing more work on your end, more cost, and longer to implement on their end.
With the app I commented almost everything, even line by line. This isn’t something you would normally do, I did this to help walk you through the program other than writing everything down.
This is an app that I might revisit in the future to add more features to it.