Inspiration
As a team we all dwell in the same accommodation, our house is made up of six residents. Five computer scientists and a singular physicist. As you can imagine, the desire to leave the house is little at the best of times. But with the current state of society and the overwhelming anxiety produced by the small pandemic we seem to be experiencing, that desire has multiplied tenfold. So when it comes to shopping we tend to send a member or two of our enclave out on a diplomatic mission to retrieve supplies, generally from wholesalers such as Costco. This allows for the collection of enough goods for each member of the household in a safer manner, however it also leads to problematic situations in the case of doing basic arithmetic. One needs to split a bill of many hundreds of great British pounds into up to 6 partitions and come up with totals that add up to the overall price of the shop else mass scale uprisings can occur and the balance of power could be upset. Thus we needed a program to do it all for us, because we're lazy.
What it does
Our program, in short, takes an image of a receipt and then reads it into a web-facing application that via the medium of drag and drop enables the user to divide their goods into a varying number of splits and thereby subtotals that add up to the whole.
How we built it
Our initial aims were to earn as many brownie points as possible, so we decided that Cassandra through Datastax was to be the crux of our backend. We decided to make it a web-facing application, since it was the focus of one of our members dissertations. So we sent him off to do the front-end, it solved the problem of having to look at him for extended periods of time. Since none of us have ever made any significant attempt to make use of image processing before, we left that to the man with the most RGB in his computer. He wrote some functionality for the amazon image processing tool rekogniser into a python based flask application. During this timeframe, the remaining two members of the group spent a good duration of the project figuring out the ins and outs of setting up a cassandra database to allow us to retain instances of the front end as data that can be restored from another location or in a separate session by the user. Then we wrote the functionality to have json data retrieved from the front end piped into the back-end and vice-versa. We tested the functionality with exemplary packets sent to the localhost via postman and managed our versioning with GitKraken.
Challenges we ran into
Other than maintaining enough of a will to live to remain upright in front of our computers and the oven shorting the electricity so that we couldn't cook our favourite cuisine: pizza, the most prominent challenges in our development cycle were as follows.
The image processing software we decided to make use of had hard limitations, we found out after we had a functioning set of methods depending on it that it would up to 50 words to be processed for any singular image before deciding that it can't be arsed.
None of use had ever set up a cassandra database before, so getting it to work involved reading. So naturally we skimmed some of the documentation, guessed and broke everything. Meaning we had to go back and re-read it properly. Needlessly wasting several hours of time.
Accomplishments that we're proud of
We lived through it and managed to sleep at least 8 hours a piece.
We're all still talking to each other, albeit with an undertone of hatred and a passive-aggressive attitude.
What we learned
That documentation is worthy of being ignored, how to make use of Cassandra databases in an albeit janky and quick-fix manner. The limitations of amazons image processing capabilities. Love for your fellow man. The drawbacks of the human consciousness. Getting nice and angry is a good way of de-stressing. Splicing together 3 sets of code that were manufactured separately is the fastest way to enter a state of depression.
What's next for Bill Splitter Application
The recycle bin.
Log in or sign up for Devpost to join the conversation.