Python-Based Document Scanner Needed
Publicada el 2026-07-28
Descripción de la oferta
# Python Developer Required – South African Driver’s Licence and Vehicle Licence Disc Decoder We are looking for an experienced Python developer to create a solution that can scan and decode: 1. South African driver’s licences. 2. South African motor vehicle licence discs. The solution will be incorporated into our existing web-based software and must be usable from a mobile device. Users should be able to use their mobile phone camera to scan either document, after which the decoded information must be returned in a structured JSON format. ## Project Requirements The solution must: * Scan a South African driver’s licence using a mobile device camera. * Read and decode the barcode on the driver’s licence. * Extract all available information from the driver’s licence. * Scan a South African motor vehicle licence disc using a mobile device camera. * Read and decode the barcode or machine-readable information on the vehicle licence disc. * Extract all available vehicle and licence disc information. * Automatically identify whether the scanned document is a driver’s licence or vehicle licence disc. * Return all decoded information in JSON format. * Be developed in Python or include a Python-based backend component. * Be suitable for integration into our existing web-based software. * Work on Android and iOS mobile devices through a browser or suitable mobile interface. * Include validation and clear error messages when a document cannot be scanned or decoded. * Process all personal and vehicle information securely. * Avoid permanently storing information unless instructed by our software. * Be suitable for deployment on our own servers. ## Expected Driver’s Licence JSON Response The final JSON structure will depend on the information available on the licence but should include fields similar to the following: ```json { "document_type": "drivers_licence", "id_number": "", "surname": "", "initials": "", "date_of_birth": "", "gender": "", "licence_number": "", "licence_issue_number": "", "licence_issue_date": "", "licence_expiry_date": "", "licence_codes": [], "vehicle_restrictions": [], "driver_restrictions": [], "professional_driving_permit": { "code": "", "expiry_date": "" } } ``` ## Expected Vehicle Licence Disc JSON Response The final JSON structure will depend on the information available on the vehicle licence disc but should include fields similar to the following: ```json { "document_type": "vehicle_licence_disc", "registration_number": "", "licence_number": "", "vin": "", "engine_number": "", "make": "", "model": "", "colour": "", "vehicle_category": "", "vehicle_description": "", "licence_expiry_date": "", "disc_issue_date": "", "tare": "", "gross_vehicle_mass": "", "registering_authority": "" } ``` The developer must clearly identify which fields can reliably be extracted from the barcode and which fields may require OCR or another scanning method. ## Deliverables The successful freelancer must provide: 1. Complete Python source code. 2. A working South African driver’s licence decoder. 3. A working South African motor vehicle licence disc decoder. 4. Mobile camera scanning functionality or clear instructions for integrating mobile camera capture. 5. A REST API, Python library or reusable software component that can be incorporated into our existing system. 6. Structured JSON output for both document types. 7. Automatic document-type identification. 8. Installation and integration documentation. 9. A list of all libraries, dependencies and system requirements. 10. Sample integration code. 11. Error handling and data validation. 12. Testing using valid South African driver’s licence and vehicle licence disc samples. 13. Assistance during the initial integration and testing process. 14. Full ownership of the completed source code upon payment. ## Important Technical Requirements The solution should preferably: * Run on our own servers. * Not rely on a third-party decoding service. * Not require recurring licence or subscription fees. * Support mobile camera images captured under normal lighting conditions. * Handle rotated, blurred, partially obstructed or incorrectly positioned images where reasonably possible. * Use image-quality checks before attempting to decode a document. * Return clear error codes and messages when the image quality is insufficient. * Comply with secure development practices and South African POPIA requirements. Any paid libraries, proprietary software, external APIs or recurring costs must be clearly disclosed before the project is awarded. ## Required Experience Applicants should have experience with: * Python development * Barcode decoding * Optical character recognition * Image processing * OpenCV or similar technologies * REST API development * JSON * Mobile camera integration * Secure handling of personal and vehicle information Previous experience decoding South African driver’s licences, vehicle licence discs or identity documents will be highly advantageous. ## Information to Include in Your Proposal Please include: * Your relevant experience. * Examples of similar barcode, vehicle-document or identity-document projects. * Confirmation of whether you have previously worked with South African driver’s licences or vehicle licence discs. * Your proposed technical approach. * The libraries or technologies you intend to use. * Whether processing will take place on the mobile device or on the server. * Which information will be obtained through barcode decoding and which information will require OCR. * Any known technical limitations. * Your estimated completion timeframe. * Your fixed project price. * Details of any ongoing fees or external dependencies. We may request a paid proof of concept before awarding the complete project. The proof of concept should demonstrate successful decoding of at least one South African driver’s licence and one South African motor vehicle licence disc. All driver, vehicle and personal information provided during development and testing must be treated as confidential and may not be copied, retained, shared or used for any other purpose.
Skills
Fuente original: freelancer