Category: isthistaxilegal

Making IsThisTaxiLegal–thinking about Proof of Concept

It can be improved so many ways:

  1. Making OCR ( to recognize the plates number)
  2. Making application Android / iPhone
  3. Making Windows (Store ) application ( not really necessary, but anyway)
  4. Finding if another cities have taxi licenses available
  5. Publicity
  6. Improving with ratings for taxi drivers
  7. Find a lawyer that knows what to do next
  8. Improving the documentation
  9. Passing from csv to sql lite
  10. Downloading automatically the pdf with licences from
  11. Making all this points on as issues
  12. Running the test automatically

And it is a small application!

If someone wants to help / or come with new ideas, p[lease leave a message here or on

Making Is This Taxi Legal–Proof of concept

This werer the steps for making a Proof of concept for Is This Taxi Legal application

Finding PDF about taxi licence for Bucuresti : PDF at

Thinking about application + web site about this -with a simple search and possible OCR ( take image of the car plate and recognizing number) . Also for international ( GPS for phones to know the city). Also IOT for monitoring the illegal taxi movement( could be also illegal to do this)

The Proof of Concept: A WebAPI + WebSite( that can be accessed also by mobile) to enter a plate number and find if it is legal. Maybe later an Android App.

Step 1 : acquiring data from

. Download situatia_autorizatiilor_taxi_20171208.PDF

Step 2 : cleaning data – read with Word and transform into CSV.

Trying <table>. ConvertToText – not good, it preserves the return character and data can not be read safely after that.

The solution: read row by row and replace CR/LF with empty for each cell.

After this, problem with Bell character – replace this also the 7 character

After this, problem with repeating headers for each table in the csv

This is the VBA code

( maybe doing same in R : )

Step 3 : Making objects to support

First creating objects to support this . Car, City, LicenseState, Licensee, TaxiAutorization.

Creating test – the City should be unique – even if Bucarest is multiple times, the City object should be the same.

Step 4: Consolidating data from CSV to objects

Creating objects to mimic CSV data . Return to step 2 and put separator | instead of ,

Problem with parsing data

– a date could not exist, so it will be nullable

– could be either , either either 27.02.202

Separate the lines with errors from the lines without errors . And return the result as a tuple

Making test in order to see the errors

Step 5: Application Web + WebAPI to display data

Making WEBAPI for seeing all and some taxis

See that valid taxis are not parsed correctly ( Validat vs Valid) . Modify test

Discover there are some licenses with state…

Step 6: Deploy sources to GitHub

Easy to do – create and submit at

Step 7: Create an application visible on internet

You can create an account at , integrate with GitHub and deploy there :


Step 8: Document the API

Swagger / Swashbuckle is the easy way to do this. Deployed at

Step 9 : Remake the documentation

Mention all the documentation in all places ( API, GitHub, others)

Mention the contact name if something is wrong

Add API for enums


This was a work of 8 hours –  and it is just a proof of concept .