Every day in the professional world, people exchange their information by name cards. We put name cards into our pocket or bag, and when we later typed everything from the name card into the app, we might be thinking: Hmm, why am i manually doing this?  

And here comes Contactor!

What it does

Contactor is a mobile IOS app that allows a user to scan a name card by either uploading an image to the app, or taking a picture. With an existing name card image, users are able to extract information from the name card (e.g. Name, telephone number, email address, etc) and save it to IOS Contacts. In addition, after successfully saved into contacts, users are also able to send a text message to the person on the name card with custom text to let that newly added contact know my number. And here comes Contactor!

How I built it

We built the entire app as an IOS app working on iphone. We wrote almost everything in Swift. The main API we have used is the Microsoft Azure Cognitive Service API which helps us to recognize text information on the name card. On the back end, we did a bit improvement to recognize the text info as phone number and email address. If we could use the preview function of Azure to train and get our own image recognition model for scanning card purpose only we could have recognize all the field including job title, name, address, etc. We used Bandwith API to text our newly added contact with our contact info. The allows us not only scan the name card but also build connection with others.

Challenges I ran into

  • Swift language has changed a and with many new versions is the most challenge
  • additionally figuring out the API and send the correctly formatted URL request
  • We had trouble with using bandwidth auto-messaging. Initially, I followed the tutorial, and got things to work in javascript, where I only need to input receiver’s number, my contact information, and my name, then my javascript file would run and send a composed message to the receiver with given information. However, because our group is developing an IOS app, so I had to find a way to run the javascript from swift. I looked up a few ways, but none worked (one had some issues with file path). So a mentor suggest that we set up a node.js server, and then send request to the server to run the javascript to send messages. It also did not work because we could not find a proper platform online to host it. Then, an engineer from Bandwidth helped us to write their API in swift. We looked up some syntax in Swift together, and also learned to convert the usertokens into base 64 code. But a package called alamofire had issues that couldn’t be fixed.We eventually figured out how to use Bandwidth in Swift.

Accomplishments that I'm proud of

We built this fully functional and useful app.

What I learned

A lot swift.

What's next for pearlhack2018

Improve our app.

Built With

Share this project: