User Tools

Site Tools


Martins e Santana Informática

I have developed some projects for some companies in my “free” time under my company's name. These projects I have done by myself, no co-workers involved.


Origin to Destination Research System

This project was developed in 2011 and 2012 for a company called Comap Consultoria. One of the most complex systems I've developed from scratch

The problem

Comap is a consulting and researching company, they've been hired by the Metropolitan Transportation Department of Sao Paulo city to do some research about the origin and destination of the people that use the biggest metro and train systems in the south hemisphere, Metrô and CPTM

They have done the same research two years earlier with the following flow:

  1. Several employees collecting data on papers by asking the people at which station they would get out of that transportation system then writing with a pen the answer on the paper
  2. Several other employees typing on worksheets the collected data from the papers
  3. Several other employees typing the very same data from the very same papers to different worksheets
  4. After that they've used some formulas to compare the data between the tween worksheets
  5. They've separated the diverged data and put many people to find the papers source of the divergence in order to find out which version typed was the right one
  6. After that they started working on the final report, which needed some statistical formulas on it

They used three months from the first day of collecting data to the first draft of the report, then more two weeks fixing the report, sending it, getting it back again, adjusting and doing the process again until the Transportation Department be satisfied with the results.

They needed a better solution to accomplish the task in a faster, cheaper and more accurate way.

The solution

With the problem in hands I analysed the time and conditions and came up with the following proposal solution:

  • An application running on a mobile device
  • Collecting data just by tapping on options, not writing
  • Synchronizing the data with a remote server
  • Web feature to download the daily collected data for examination
  • Web feature for generating the main report

The solution was accepted and I got started working on. They didn't decide what device they would use, so I needed to create something multi-platform. They were not sure if they would use some device with 3G or not, but even with 3G many stations are underground and there is not signal, so the app needed so be able to save the data and synchronize it later. Due to those reasons I chose to use HTML5 for the mobile app.

The first mobile devices adopted were cheap android tablets 7” screen with 3G. That device experiment was a disaster, they only got 2 hours of battery they took other 2 hours for full recharging.

The second mobile devices adopted were a less cheap android tablets 7” screen without 3G. Those devices presented a better performance, 4 hours of battery and they took 3 hours for full recharging. It was not enough, because they needed to work from 4:30 am to 23:45 pm during 4 weeks.

Buying iPads was too expensive so I've found a company that rent iPads, and that was the perfect solution.

They worked with the system using 32 iPads a day interviewing an average of 2400 people each iPad during 28 days resulting in more then 2 million records to build the final report, and as soon as the researches stopped the final report was done.

And during the whole process they could have partial versions of the final report and send them to the client.

In a very resuming way the final report was something like this:

+ - - - - - | time |St.A |St.B |St.C |
+ - - - - - |- - - - - - - - - - - - |
+ Station A | 04:30| -*- | 100 | 200 |
+ Station A | 05:00| -*- | 100 | 200 |
+ Station A | 05:30| -*- | 100 | 200 |

+ Station A | 23:00| -*- | 100 | 200 |
+ Station A | 23:30| -*- | 100 | 200 |
+ Station B | 04:30| 100 | -*- | 150 |
+ Station B | 05:00| 100 | -*- | 150 |
+ Station B | 05:30| 100 | -*- | 150 |

+ Station B | 23:00| 100 | -*- | 150 |
+ Station B | 23:30| 100 | -*- | 150 |
+ Station C | 04:30| 200 | 150 | -*- |
+ Station C | 05:00| 200 | 150 | -*- |
+ Station C | 05:30| 200 | 150 | -*- |

+ Station C | 23:00| 200 | 150 | -*- |
+ Station C | 23:30| 200 | 150 | -*- |

Plus some statistical formulas

Technologies I've used

Delta Q® Coffe Break Contest

Delta Q® Coffe Break Contest was contest where the participants should send an answer the question “Why do I deserve a Coffe Break with the actor Ricardo Pereira?”.

The answers should have a maximum amount of words and should be sent within a certain interval of days. After that period, the Delta Q® team should choose the best answer and give the prize to the winner. At the end of the contest the app should display the winner's answer.

Solo project, no teamwork, I've done everything.


  • Interface for the user fill his/her contact data;
  • Some of the user's data were retrieved via Facebook Graph API;
  • Validation formats for email, phone and zip fields;
  • Validation against bad words and amount of words;
  • Sharing the app link by clicking on a button, server side feature via via Facebook Graph API;
  • Backend interface for management of the answers.


Apsen Sonhe Junto

Apsen Sonhe Junto (Apsen Dream Together) is an application used for branding with the idea of send good to friends.

The mechanics of this Apsen app branding strategy is making the users sending messages directed so their friends tagging them and by doing that they give'em an incentive to do the same with other friends, spreading the brand. The differential idea is that the message is not shared as a text, but as a image in which the text is going to be written with a nice font.

That was a solo project, no teamwork, I've done everything.

Features / Flow

  • The user must click on a face silhouette in order to choose his/her friend
  • Using the Javascript Facebook SDK the friends list is displayed;
  • Once the user choose a friend, that friend's profile picture is displayed replacing the face silhouette;
  • The user then enter the message to the chosen friend;
  • Validation against Portuguese bad words and amount of words;
  • When the user clicks on the “Enviar”(send) button, he/she is able to see the preview of the generated image before sharing.
  • Now the user can see the preview and decide it that looks ok or not
  • If preview is not what the user wants there is the option of clicking on cancel and change the text
  • If otherwise the user likes what is displayed he/she can click on share
  • The picture is shared on the user's Facebook timeline and the friend is tagged on it via Facebook Graph API.
  • The written text is also the description of the picture and a link to the app goes along with it
  • After sharing the user receive some message with the permalink of the post.
  • In that moment, in the best scenario:
    • A big number of the user's friends are going to see the picture
    • By seeing the picture they see the brand and the link of the app
    • The tagged user will receive a notification and will also be impacted with the brand
    • The picture will also be displayed on the friends timeline due to the tag
    • The user's friends and the tagged friend's friends can see that even on the right top corner events list
  • Backend interface for management of the answers.


How much cost to get married

A Facebook application for Finanças Práticas that is a website of VISA Brasil. The app is a calculator to help people figure out how much they can spend with a wedding.

My First Million

Another Facebook application for Finanças Práticas of VISA Brasil. The app is another calculator, now it aims to help people planning how much they should save to get their first million.

Apsen Contest

Dell Contest

Active Phone Audio Messages System

Distributed system for managing phone audio messages campaigns. This was from far the most complex system I've ever done as a solo developer.


If you have an audio message and you want thousands of people to hear it by phone, that system can help you. It works in the following way: The user…

  • … buys pre-paid credits, each credit is used with one message.
  • … uploads the audio message to the system and run tests
    • … receives the system call on his cellphone and/or local phone.
    • if the quality is ok, goes to run the campaign, if it is not, the use records, uploads and tests again.
  • … uploads the phone numbers data csv file and run the campaign
  • The system takes the data, spread it among the calling servers
  • The calling servers start to call the numbers and saving the statistics of the calls
  • The system synchronize the local statistics data from each calling server on another database server
  • Then the user can see in real time reports with the statistics using charts
    • How many numbers were used
    • How many numbers didn't work
    • How many people answered
      • How many have listened the whole message
      • How many have listened at least 75%, 50% and 25%
  • As the user is able to see also the numbers, he is able to randomly pick one of those numbers and call it in order to understand how was the call quality.
msi/martins_santana_informatica.txt · Last modified: 2016/03/01 19:10 (external edit)