Welcome to Chequemate 2.0, the premier place to scan receipts and split them with your friends.
This project is an extension of our first specification project and second project which defined and implemented a bill splitting web app. This exercise aims to build a containerized app that uses machine learning. See instructions for details.
In this project, we redesigned the front end, containerized the web app and database, and added an OCR machine-learning container for receipt scanning and parsing.
Edison Chen, Natalie Wu, Chelsea Li, and Jacklyn Hu
First, rename the env.sample
file to .env
and make any necessary adjustments.
Next, from the root directory, run docker compose up --build
Finally, open http://localhost:10000/
in your local browser to view our web app.
The three containers are connected through a docker network. Note that the OCR API key is from a free version, so it can only properly process a couple of requests per hour.
We were able to utilize docker and docker compose to develop a multi-container app that leverages machine learning.
We ended up falling short again due to our inexperience with docker containers and transferring files properly between the database image and other images. We pivoted to using atlas clusters instead of localhost to host our mongodb database.
We are hopeful however, in the utility of our app and will continue to make improvements until we have a working bill-splitting OCR app.
ML client based off tutorial by NeuralNine using the asprise OCR API.
An exercise to put to practice software development teamwork, subsystem communication, containers, deployment, and CI/CD pipelines. See instructions for details.