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 .
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.1.tar.gz
(7.9 kB
view hashes)
Built Distribution
Close
Hashes for national_id-1.0.1-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 741111d2a954cebc032afe89fe4dddab91a61748d6ec2d1c938f4bafc701dbe5 |
|
MD5 | f8d8e88da39567c24f302acda8a91035 |
|
BLAKE2b-256 | 91fdcc6861446d8605b00d7a29d2e56fd62fb674828ab694282f5a23c8c1d5fb |