/Uploader_Project

using ML to help deal with receipts

Primary LanguageTypeScript

Summary

  • the application uses ML and modern web components to organize your daily data as far as it comes to receipts. Upload receipts to our Nanonets ML backend which will parse the receipt for useful data. Take a picture and write comments and leave as a remeninder for your self. You can look at all your data in the dashboard

Features include

Only members of the project can read the README.md from the ignore folder

Stack

Frontend

  • TsParticles v1.26.3
  • Angular v11.2.13
  • angularx-qrcode v11.0.0
  • ngrok : v4.0.1
  • primeng: v11.4.2

Backend

  • Tornado v6.1
  • Nanonets
  • azure-storage-blob v12.8.1
  • watchdog v2.1.2
  • pyodbc v4.0.30 ( for azure sql)
  • jawsdb mysql (heroku addon)

Testing

  • Docker, (tes in docker containers from linux VM) v20.10.7

Unit

  • rspec v3.10.0
  • capybara v3.35.3

Integration

  • rspec v3.10.0
  • capybara v3.35.3

Hosting

  • codesandbox , frontend v.2.2.3
  • heroku, backend v7.56.0

Structure

Linting Rules

  • for each commit, we append "WORKING COMMIT" so we know the commit is free of bugs
  • ruby indentation 2 lines
  • ts indentation 4 lines

Project Directory Mapping

Frotend

Configurations

  • we use JudimaApp/src/envrionments - for dev and prod frontend configurations we includes configuations for features in the app

Backend

  • JudimaApp/backend/python/template.py is mainly a class for a route for the tornado server
  • JudimaApp/backend/python/tornad_server.py - dev backend server
  • JudimaApp/backend/python/tornado_heroku_server.py - prod backendserver

Configurations

  • refer to README.md in ignore

Login

nected to the User attributes of account metadata,

Testing

  • in JudimaApp/testing/TESTS.md we have where we write pseudo code for our unit,e2e and integration tests later
  • JudimaApp/testing/e2e/social-e2e-circleci.rb - is where all of our e2e tests live, we test on docker in a ubuntu 20.04 to closely represent the circleCI env and write the code
  • in the local testing env we use a gui browser, to oberserve to make sure the tests work properly, however in circleci we have the browsers run in headless mode.

CI/CD

  • IN .circle is our config.yml, we make use of the company's Docker image as well as the circleci browser-build tools orb, as a general practice we packages our dependencies into the orb so we dont have to increased build times

Issues

Future Plans

refer to README.md in ignore

Site Navigation

  • to navigate through the website, end user clicks on the login , then login with facebook , and interacts with the app via dropdown navigation

Issues

difficult connecting when azureite is in VM

Cant connect to some ports on vm

  • Try to find a solution for a sql backend

  • decides to work when it wants to throughing the script in assets as a solution

    {
        src:"https://cdnjs.cloudflare.com/ajax/libs/tsparticles/1.26.3/tsparticles.min.js",
        name:"tsParticles",
        integrity:"sha512-f5U3LCj0YmFWHJ+I5vljqpT2RIGQic48+79y0V/fiJ60KX/s/xiZWQ/Zw8elJHpEdTPFa/5rtVil337IJwg4EA==",
        crossorigin:"anonymous",
        // defer:"true",
        placement:{
            appendChild:document.body
        }
    },

TODO

  • support for a firebase build option

Resources

mysql connection docs

facebook app client

azure portal

download ODBC driver SQL

Azure SQL database engine errors

Troubleshooting connectivity issues with azure sql

Create Blob Container

Nanonets Keys

Nanonets Python Docs

Ngrok

PyODBC row docs

Heroku app backend

Python ODBC buildpack

Heroku buildpacks

building heroku docker images

clear db heroku addon4

install myodbc installer for odbc drivers

quotaguard issues * check your gitignore to see if its removing the vendor folder