This app allows users to use their webcam to scan barcodes of books and/or search them up to add to their virtual library. They can then organize these books between "Want to Read" and "Books Read." If you ever find a book out in public or in the library that you want to keep track of and remember, this is a great application for that!
Windows: Use PowerShell, ensure pip
and git
are installed.
macOS: Use Terminal, ensure brew
or pip
is updated.
Linux: Use bash
, ensure python3
and pipenv
are installed.
python3 -m venv error404
source error404/bin/activate
pip install all of these packages:
pip3 install opencv-python
pip3 install flask
pip3 install flask-login
pip3 install numpy
pip3 install pymongo
pip3 install mongomock
pip3 install python-dotenv
pip3 install requests
python3 -m pip install coverage
pip3 install pytest
or you can just do:
pip3 install -r requirements.txt
Copy the provided env.example
file to .env
in the project root and fill in the information with your own URI
, DBNAME
, and SECRET_KEY
(or check the error404 team channel on Discord to get access to our database).
env.example file:
# MongoDB connection string (must begin with mongodb+srv:// or mongodb://)
URI=mongodb+srv://<username>:<password>@<your-cluster>.mongodb.net/?retryWrites=true&w=majority&appName=virtualLibrary
# Name for MongoDB Database
DBNAME=virtualLibrary
# Flask secret key for session management
SECRET_KEY=your-secret-key-here
To downlaod and setup docker:
brew install docker-compose # download docker for macOS
sudo apt install docker-compose # download docker for Windows
docker-compose up --build # run the docker containers
To run the program, use:
python3 app.py
Ensure everything works - make sure you are in the correct directories before running these commands:
# For tests:
pytest
# For coverage:
coverage run -m pytest
coverage report
Either one of these dockerhub links can be used - multiple group members uploaded the images:
Due to our repo being forked from Professor Bloomberg's repo, we do not own the repo and therefore, we were unable to apply https:// security through Digital Ocean causing the camera to not work. However, all other features work and can be accessed from this publicly deployed link:
To check the camera functionality of our project, you can run it locally.
Mahmoud Shehata
Marcos Huh
Catherine Huang
Syed Naqvi
This project is licensed under the GNU General Public License. See the LICENSE file for details.