🏆 Best Overall - UCLA ACM Hack on The Hill. You can find more info on our devpost link
Important note - due to github constraints and a 100mb limit we haven't been able to upload our complete code - a link to the complete code is given in this drive link - https://drive.google.com/file/d/1gbQc4_wORvQxS1ah4dnwQpVCS4LYcgOx/view
What's missing in this repo?
Weights for our ML model, some images, some external ML supporting files.
Our settings.py file defines the overall settings of the website, gives the backend information about our front-end directory, and defines the path to our data-base.
Next, our urls.py defines the endpoints which our website must open on depending on any link that the user might click. This data is then sent to the main backend logic file - views.py.
When a POST request is created, data is taken from the form in the front end (i.e. the image) and is sent to views.py file. In our views.py file we get the data that is sent by the user and parse it if required. We then pass this data into our implement model function which first preprocesses the data and then uses the model weights to fill in some parameters i.e. alignment, Rx number presence.
This renders the data further onto our front end.
After the user uploads their image:
We setup an SQL server to which this image is pushed
The database then sends this image to our Django backend
We use OpenCv to crop the image, identify all text and colors, check for spelling errors
This cleaned image is passed to a CNN which detects the presence of the Rx symbol
The results of the model run are parsed into a user friendly format
This final format is pushed to the website wherein we display an accuracy score and all parameters are displayed


