The purpose of this application is to track the arrival of packages in the mail and hopes to help streamline the process using Optical Character Recognition technology via TesseractJS. The mobile application for this repository can be found here.
A staff member captures a shipping label; the backend uses OCR (Tesseract.js) to read the recipient and package details, records the package, and emails the recipient that it has arrived. This repository is the backend / API; the companion mobile app lives here.
- OCR label reading (Tesseract.js) with image pre-processing (
sharp/imagemin) - Package intake, categorization, and lookup
- Email notifications to recipients (
nodemailer) - JWT + session authentication
- REST API plus a Handlebars web interface
- Dockerized deployment
Node.js · Express · MongoDB (Mongoose) · Handlebars · Tesseract.js · Nodemailer · Docker
Built as a senior capstone project, split across backend, web, and mobile components.
-
Create a new gmail account (or use an existing one)
-
Copy the provided
.sample.envfile and insert the appropriate values in a new file called.env
In your Terminal or Command Prompt, run the following at the root of the project directory to run the server, which install all of the dependencies for the application:
$ npm i
In your Terminal or Command Prompt, run the following at the root of the project directory to run the server, which will expose the application:
$ npm start
In your Terminal or Command Prompt, run the following at the root of the project directory to run the server, in order to build the application:
$ docker build . -t postmastr
In your Terminal or Command Prompt, run the following at the root of the project directory to run the server, which will run the application:
$ docker run --restart=on-failure -d -p 3000:3000 -e APP_PASS=var -e DATABASE_CONNECT=var ... -t postmastr
In your Terminal or Command Prompt, run the following at the root of the project directory to run the server, which will run the application:
$ docker run --restart=on-failure --env-file path/to/file -d -p 3000:3000 -t postmastr