A comprehensive lost-and-found solution using NFC tags to help reunite lost items with their owners.
NFC Tag Finder is a web application that allows users to:
- Register NFC tags with their contact information
- Find owners of lost items by scanning NFC tags
- Securely connect finders with owners without exposing personal information
The system uses pre-authorized NFC tags that, when attached to valuable items, provide a simple way for honest finders to contact the owner when an item is lost.
- Purchase an authorized NFC tag from our system
- Register the tag by scanning it with your smartphone
- Enter your contact information (name, email, phone)
- Attach the tag to your valuable item (keys, laptop, luggage, etc.)
- Scan the NFC tag on a found item using any NFC-enabled smartphone
- Submit your contact information and a message to the owner
- The owner will be notified and can contact you to arrange return
- Secure Contact Exchange: Personal information is never publicly exposed
- No App Required: Works with any smartphone that can read NFC tags
- Pre-authorized Tags: Only authorized tags can be registered in the system
- Simple Registration: Quick and easy process for tag owners
- Responsive Design: Works on all devices and screen sizes
The application is built with:
- Flask: Python web framework for the backend
- Firebase/Firestore: For data storage and retrieval
- Bootstrap: For responsive frontend design
- NFC Technology: For tag scanning and identification
- authorized_tags: Pre-approved tags that can be registered
- registered_tags: Tags that have been claimed by owners
- notifications: Finder submissions when someone finds a tag
- Python 3.12+
- Pipenv for dependency management
- Firebase account with Firestore database
- Firebase service account credentials
-
Clone the repository:
git clone <your-repository-url> cd nfc-tag-app -
Install pipenv if you haven't already:
pip install pipenv -
Install dependencies:
pipenv install -
Create a
.envfile in the project root with the following variables:FLASK_APP=app.py FLASK_ENV=development FIREBASE_SERVICE_ACCOUNT_PATH=path/to/your/serviceAccountKey.json FIREBASE_DB_ID=your-firebase-db-id SECRET_KEY=your-secret-key
-
Start the Flask development server:
pipenv run flask runOr use the provided makefile:
make run -
Access the application at
http://localhost:5000
The application includes admin tools for managing NFC tags:
Located in admin_tools/tag_manager.py, this tool allows administrators to:
- Register new authorized tags
- List all authorized tags in the system
- Batch register tags from a file
To use the admin tools:
pipenv run python admin_tools/tag_manager.py
The application can be deployed to any hosting service that supports Python applications:
- Set up the required environment variables on your hosting platform
- Configure your web server (Nginx, Apache, etc.)
- Use a WSGI server like Gunicorn or uWSGI
- All communication between the application and Firebase is secured
- User data is protected and only shared when necessary
- NFC tags are pre-authorized to prevent abuse
Contributions are welcome! Please feel free to submit a Pull Request.
This project is licensed under the MIT License - see the LICENSE file for details.
For support, please open an issue on this repository.