Egyptian national ID validator and data-extractor AP
Project description
Egyptian national ID validator and data-extractor API
Requirments
- python3.6 or later
- pip3
- bottle
How to run
- Install requirments
pip3 install -r requirements.txt
- Run
python3 server.py
- Server will be running on port 8001
- Endpoint can be reached at http://localhost:8001/get_info
Endpoint
/get_info
-
Accepts post requests with "Content-Type: application/json" Header
-
Example request:
curl -H "Content-Type: application/json" -d '{"id_number": "29009121201812"}' -XPOST http://localhost:8001/get_info
-
-
Response
- 200 OK, json_info: national id is validated and info extraction ok
- 400 Bad Request: Wrong national id number
- 500 Internal Server Error: Invalid request from user (invalid json, invalid form of data)
Example response:
{"nationl_id_data": {"year_of_birth": "1994", "month_of_birth": "9", "day_of_birth": "15", "governorate": "Al Daqhlia", "type": "Male"}}
-
Validations and checks
- According to this source
The national ID consists of the following:
+-+--+--+--+--+----+-+
|2|90|01|01|12|3456|7|
+--------------------+
|A|B |C |D |E | F |G|
+-+--+--+--+--+----+-+
- A -> The century: A=2 From (1900-1999), A=3 From (2000-2099)
- B~D (Date of birth): B -> Year of birth C -> Month of birth D -> Day of birth
- E -> Governorate code ex: {12: "Al Daqhlia"}
- F -> Unique code. (Odd is male, Even is female)
- G -> Check digit for verification
How to run tests
- Lib test:
pytest -s tests/test_national_id.py
- Test the endpoint
python3 -m pytest -s tests/test_endpoint.py
Dockerfile
- You can build and run the dockerfile in
docker directory
docker build -t waleedhammam/national_id .
Pip installable
-
Library national id is pip installable
pip install national-id
to be used in the whole system -
Example usage:
from lib.national_id import NationalID instance.get_info() Out: (True, {'year_of_birth': '1985', 'month_of_birth': '10', 'day_of_birth': '29', 'governorate': 'Al Daqhlia', 'type': 'Male'})
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
national_id-1.0.2.tar.gz
(8.1 kB
view details)
Built Distribution
File details
Details for the file national_id-1.0.2.tar.gz
.
File metadata
- Download URL: national_id-1.0.2.tar.gz
- Upload date:
- Size: 8.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.0.5 CPython/3.8.5 Linux/5.4.0-52-generic
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 4e1de832995dc073d2a4325e53ee3394addce429c67dd29052d05590f0938a66 |
|
MD5 | 6391873171834852be5d42d619469c03 |
|
BLAKE2b-256 | ca9cdfeba6258685ed364df37ee9fe5455ff11b467e420e861dc47e1c2d5ce2b |
File details
Details for the file national_id-1.0.2-py3-none-any.whl
.
File metadata
- Download URL: national_id-1.0.2-py3-none-any.whl
- Upload date:
- Size: 8.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.0.5 CPython/3.8.5 Linux/5.4.0-52-generic
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 2b20827dc6e37b1814a0f2d4b1c285de33b13a9eba31936aa478c96668accd5a |
|
MD5 | ea83db88e4198a397a372dc770523029 |
|
BLAKE2b-256 | 7b84bb418965e5928c84334e2cc64cf37ee4d13912a68d1052ca700b5367b11f |