Face Match App is a lightweight Flask web application that allows users to upload an ID card and a selfie to verify identity.
It works by comparing the two images using the face_recognition library, which calculates 128-dimensional face embeddings and measures the Euclidean distance between them to determine a match.
All verification results are stored locally in a SQLite database and displayed in a clean, Bootstrap-powered dashboard with filtering options.
- 📤 Upload ID card and selfie for comparison
- 🧠 Facial recognition using the
face_recognitionlibrary - 📊 Dashboard with history, filtering, and pagination
- 🗃️ SQLite for local data persistence
- 🧹 Session-based clearing of results to maintain privacy
- 💻 Clean, responsive UI built with Bootstrap 5
To get the application up and running locally, follow these steps:
# Clone the repository
git clone [https://github.com/yourusername/face-match-app.git](https://github.com/yourusername/face-match-app.git)
cd face-match-app
# Create and activate a virtual environment
python3 -m venv .venv
source .venv/bin/activate # On Windows: .venv\Scripts\activate
# Install dependencies
pip install -r requirements.txt
# Run the Flask app
flask --app app.py run
# 🌐 Open your browser and navigate to: [http://127.0.0.1:5000/](http://127.0.0.1:5000/)This is an overview of the key files and directories:
face-match-app/
├── app/
│ ├── routes.py # Handles web requests and core logic
│ ├── models.py # Defines the database structure (SQLite)
│ ├── templates/
│ │ ├── index.html # The main upload page
│ └── dashboard.html# The history and results page
│ └── static/
│ └── uploads/ # 📂 Stores temporary uploaded ID/selfie images
├── requirements.txt # List of project dependencies
├── app.py # The main Flask application entry point
└── README.md
| Layer | Technology | Description |
|---|---|---|
| Backend | Flask (Python) | Lightweight web framework for the core application. |
| Face Recognition | face_recognition |
Library used for face detection and feature comparison. |
| Database | SQLite | Serverless, file-based database for storing verification history. |
| Frontend | Bootstrap 5 | Used for a clean, responsive, and modern user interface. |
| Language | Python 3.10+ | The core programming language. |
- 🔐 Implement User Authentication for restricted access.
- ☁️ Integrate Cloud Storage (e.g., S3) for persistent image storage.
- 🧱 Add Docker support for easy containerized deployment.
- 🧾 Create REST API endpoints for external system integrations.
Nuru Mohammed
This project is licensed under the MIT License — you’re free to use, modify, and distribute it.
⚡ “Not every web app needs Django. Sometimes, Flask + clean architecture does the job beautifully.”