TA meeting 2

January 23

Noah, Nick, Mike, George

TA meeting 2

pre meeting: TA’s questions:

is everything okay with the architecture side of the app? (any problems encountered?)

everything seems ,okay for now, we understand the class structure, we have our app running and building in Jenkins.

Meeting:

go through features (12 of them)
 * 1) live display: use angular to live update your screen without clicking equals sign (high risk because of angular)

TA answer: we can just have a live thread that “presses equals for you” everytime the user updates the screen (make sure it doesn’t kill your app, thread shouldnt "press equals" constantly)
 * 1) rotate screen: another XLM layout: use fragments.

TA answer: had this in mind. Good feature.
 * 1) list of previous entries: a log of previous inputs. (probably a JSON file we write to and can read from)

TA answer: good, shouldn't be too hard. No need to complicate things with a server or whatnot.
 * 1) Store value button:

TA answer: this is essentially copying to clipboard. Not really a feature, since its so small. Watch out when calling this a feature cause you will need a very good use case to back it up. Very simple. The only extra work is making sure that pasting from the clipboard does not allow you to paste invalid input. (string validation)
 * 1) State of the calculator saved:

TA answer: good.
 * 1) brackets: get equations, not just numbers.

TA answer: good feature, interesting. High risk because we are (probably?) changing the computation methods of the calculator.
 * 1) Convert between number bases: switch to binary, hex, etc.etc. (implement binary operands)

TA answer: although this feature is quite simple, it is a good one. Refer to other computer science calculators to see how they implement it. This goes hand in hand with UI changes and keyboard layouts.
 * 1) Convert between units of measurement:

TA answer: save features like this one for the end. It is extremely simple and easy, we want to see more complex core ideas implemented for now. Practically not a feature (thats how simple it is)
 * 1) Changing keyboards/Change mode

TA answer: check other calculators and see how they manage it. This is essentially adding binary, hex, etc. There is overlapping between the features.
 * 1) Paste a numbver: currently no way to paste a number.

TA answer: this probably involves simply unlocking the menu in the app. Don't forget the string validation on whatever is being pasted. If we want to add equations, we might need to figure out more complex strings as well. Save this for alter when we actually DO have string inputs.
 * 1) Quiz: quizzes you on a math problem

TA answer: this is not a feature that should be implemented yet. Eventually once the calculator is mroe complex, you can use these quiz questions to reinforce the mathematical concepts introduced by new functions/buttons. Keep it for the absolute end of the project.
 * 1) Statistical calulator: nPr, nCr, etc.etc.

TA answer: this is essentially adding funcitons, but for big numbers. Why? --> because normally people use these functions for large data, and they use scripts instead. If we find a way to use big data, it would be cool. This is quite risky because it changes our app form a calculator to something more akin to "MatLab". Check online to see how people do make statistical calulators look and feel good. There are good libraries for this kind of stuff. More features talked about that were not present in our list:
 * 1) "Second" function: buttons doing double work

TA answer: under the same category as changing the UI.
 * 1) OCR: scan a piece of paper to identify numbers/get answers from equations. Watch out with this, it can get out of hand easily. It is a very attractive features to add however.
 * 2) Speech to text:

TA answer: can use androids already implemented library for this kind of thing. Very interesting, i.e. can put down your phone and read out an equation, calculator writes it. (use an API)
 * 1) Text to speech:

TA answer: also interesting, but if you are to do speech, focus on the previous one first.
 * 1) Graphing:

TA answer: interesting feature to implement. This comes after you can save numbers into the app so you can see the progression of the numbers you saved.
 * 1) Color themes:

TA answer: not very interesting, technically already is in the app. The goal of this isnt to make the best app in the world (i.e. tweak everything to make it perfect). The idea is to add core features and extend the app. If you want to make the color switching better, leave it for the end. Essentially, most of these features are not insanely complicated, Open your mind to more ideas to make it crazy.

When it comes to saving numbers, we wont need a database, it will slow down the app a lot. You can instead use a JSON file of some sort and read/write to it.