diff --git a/README.md b/README.md index 25b4bab..c7eefb7 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ -

Face Recognition Project

+# FaceRec - Face Recognition Project -**FaceRec** is an innovative face recognition project utilizing **Flask**, **FastAPI**, **DeepFace**, and **MongoDB** to create a Face recognition system. This application empowers users to register faces along with associated metadata, update their information, and delete their data, creating a comprehensive face recognition system. +**FaceRec** is an innovative face recognition project utilizing **Flask**, **FastAPI**, **DeepFace**, and **MongoDB** to create a face recognition system. This application allows users to register faces with associated metadata, update their information, and delete data, providing a comprehensive face recognition solution.

Python application @@ -13,7 +13,6 @@ Lines of Code Security Rating Sqale Rating - Sqale Index Reliability Rating Vulnerabilities @@ -22,10 +21,20 @@ ## ๐Ÿš€ Features - **Real-Time Face Recognition:** Detect and recognize faces seamlessly in real-time. -- **User-Friendly Interface:** Easy to use with a clean design for enhanced user experience. +- **User-Friendly Interface:** Clean design for enhanced user experience. - **Metadata Management:** Register, update, and delete face entries with ease. - **Scalable Architecture:** Built to handle multiple users and extensive datasets. +## ๐Ÿ“Š Repository Statistics + +| Metric | Badge | Link | +|-------------------------|-------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------| +| **Stars** | ![GitHub Stars](https://img.shields.io/github/stars/Devasy23/FaceRec?style=social) | [Stars](https://github.com/Devasy23/FaceRec/stargazers) | +| **Forks** | ![GitHub Forks](https://img.shields.io/github/forks/Devasy23/FaceRec?style=social) | [Forks](https://github.com/Devasy23/FaceRec/network/members) | +| **Open Issues** | ![GitHub Issues](https://img.shields.io/github/issues/Devasy23/FaceRec) | [Issues](https://github.com/Devasy23/FaceRec/issues) | +| **Open Pull Requests** | ![GitHub PRs](https://img.shields.io/github/issues-pr/Devasy23/FaceRec) | [Pull Requests](https://github.com/Devasy23/FaceRec/pulls) | +| **Closed Pull Requests**| ![GitHub Closed PRs](https://img.shields.io/github/issues-pr-closed/Devasy23/FaceRec) | [Closed PRs](https://github.com/Devasy23/FaceRec/pulls?q=is%3Apr+is%3Aclosed) | + ## ๐Ÿ“ฆ Getting Started These instructions will guide you through setting up the project on your local machine for development. @@ -53,7 +62,7 @@ Make sure you have **Python 3.10 or later** installed. ### Running the Server -To start the Flask and FastAPI applications, run the following command: +To start the Flask and FastAPI applications, run: ```bash python main.py ``` @@ -61,70 +70,60 @@ python main.py Your application will be available at `http://localhost:5000`.

- Project Structure +Project Structure - `requirements.txt`: Contains the Python dependencies for the project. -- `API/`: Contains the code for the FastAPI application. -- `FaceRec/`: Contains all files related to the HTML, CSS, and Flask application. -- `Model-Training/`: Contains scripts for training models. -- `docs/`: Contains documentation files. -- `test-faces/`: Contains test data for face recognition. -- `main.py`: Contains code to start both FastAPI and Flask applications. +- `API/`: FastAPI application code. +- `FaceRec/`: HTML, CSS, and Flask application files. +- `Model-Training/`: Scripts for model training. +- `docs/`: Documentation files. +- `test-faces/`: Test data for face recognition. +- `main.py`: Code to start FastAPI and Flask applications.
-## Function Flow - -1. `create_new_faceEntry()`: Receives a POST request with an image and metadata. It extracts the face, calculates the embeddings, and stores the data in the database. -2. `Data()`: Sends a GET request to the `/data` endpoint of the FastAPI app to get the list of Face Entries from MongoDB. -3. `update()`: Updates the details of the face entry in the database. -4. `read()`: Sends a GET request with a specific `Employeecode` to read the related information. -5. `delete()`: Deletes the specific employee data. ## Sequence Diagram ![image.png](sequence-diagram.png) + ## ๐Ÿ—„๏ธ Database Schema -1. **Create a New Connection in MongoDB** using the following URL: +1. **Create a New MongoDB Connection** using: ``` mongodb://localhost:27017/8000 ``` -2. **Create a Database:** +2. **Database Details:** - **Database Name**: `DatabaseName` - **Collection Name**: `CollectionName` -3. **Import Data by Using a JSON File:** +3. **Import Data**: - From the `database.mongo` folder -> `{DatabaseName}.{CollectionName}.json` ### The `faceEntries` Collection Schema: -- `id`: A unique identifier for the face entry. -- `Employeecode`: A unique employee ID associated with the image. -- `Name`: The name of the person in the image. -- `gender`: The gender of the person. -- `Department`: The department of the person. -- `time`: The timestamp of when the face entry was created. -- `embeddings`: The embeddings of the face image. +- `id`: Unique identifier for the face entry. +- `Employeecode`: Unique employee ID associated with the image. +- `Name`: Person's name. +- `Gender`: Gender of the person. +- `Department`: Department of the person. +- `time`: Timestamp of the face entry creation. +- `embeddings`: Embeddings of the face image. - `Image`: Base64 encoded image file. ## ๐Ÿ”„ Function Flow -1. **`create_new_faceEntry()`**: Receives a POST request with an image and metadata. It extracts the face from the image, calculates the embeddings, and stores the data in the database. - -2. **`Data()`**: Sends a GET request to the `/data` endpoint of the FastAPI app to retrieve the list of face entries from MongoDB. - +1. **`create_new_faceEntry()`**: Receives a POST request with an image and metadata, extracts the face, calculates embeddings, and stores data in the database. +2. **`Data()`**: Sends a GET request to the `/data` endpoint to retrieve the list of face entries from MongoDB. 3. **`update()`**: Updates the details of a face entry in the database. - 4. **`read()`**: Sends a GET request with a specific `Employeecode` to retrieve related information. - -5. **`delete()`**: Deletes a specific employee's data from the database. +5. **`delete()`**: Deletes specific employee data from the database. ## ๐Ÿงช Testing -To run the tests for this project, use the following command: +To run the tests: ```bash pytest ``` @@ -132,14 +131,12 @@ pytest ## ๐Ÿ‘ฅ Our Valuable Contributors โค๏ธโœจ Thanks to all the amazing people who have contributed to **FaceRec**! ๐Ÿ’– -[![Contributors](https://contrib.rocks/image?repo=Devasy23/FaceRec)](https://github.com/Devasy23/FaceRec/graphs/contributor) +[![Contributors](https://contrib.rocks/image?repo=Devasy23/FaceRec)](https://github.com/Devasy23/FaceRec/graphs/contributors) ## ๐Ÿ“„ Documentation -For detailed API documentation, please refer to the [API Documentation](API_DOCUMENTATION.md) file. - +For detailed API documentation, refer to the [API Documentation](API_DOCUMENTATION.md) file. ## ๐Ÿ“„ License -This project is licensed under the **APACHE License** - see the [LICENSE](LICENSE) file for details. - +This project is licensed under the **Apache License**. See the [LICENSE](LICENSE) file for details. \ No newline at end of file