=>Here's my code......
\documentclass[a4paper]{article}
\usepackage[utf8]{inputenc}
\usepackage{tikz}
\usetikzlibrary{shapes,geometric,arrows}
\tikzstyle{startstop} = [rectangle, draw, text width=13cm, text centered, rounded corners, minimum height=1em]
\tikzstyle{io} = [trapezium, draw, text width=3.5cm, text centered, minimum height=1em]
\tikzstyle{process} = [rectangle, draw, text width=5cm, text centered, minimum height=1em]
\tikzstyle{decision} = [diamond, draw, text width=3.5cm, text centered, minimum height=1em]
\tikzstyle{arrow}=[thick,->,>=stealth]
\begin{document}
\begin{tikzpicture}[node distance=2cm]
%middle boxes
\node(Start)[startstop]{start};
\node(in1)[io,below of=start]{Read fingerprint,distance,date,time};
\node(pro1)[process,below of=in1]{Result=new ValidationResult()};
\node(pro2)[process,below of=pro1]{Generate template from fingerprint};
\node(pro3)[process,below of=pro2]{Search local storage for a matching template};
\node(dec1)[decision,below of=pro3,yshift=-1cm]{Match exists?};
\node(pro2a)[process,left of=dec1,xshift=-2cm,yshift=-2cm]{Details <- helpPost(server,fingerprint)};
\node(pro2b)[process,right of=dec1,xshift=5cm,yshift=-2cm]{Update the pending transaction==matching file name with the current as exit details};
\node(pro3a)[process,below of=pro2b,xshift=1em]{Queue transaction for insertion in the database};
\node(pro3b)[process,below of=pro3a,xshift=1cm]{};
\node(dec2) [decision,below of=pro2a,yshift=-1cm]{Details=Null?};
\node(pro4a)[process,left of=dec2,xshift=-2cm,yshift=-1.5cm]{Result=ValidateUser(details)};
\node(pro4b)[process,right of=dec2,xshift=1cm,yshift=-1.5cm]{Result=Result.Unknown};
\node(dec3)[decision,below of=pro4a,yshift=-1cm]{Result=Result.valid?};
\node(pro5a)[process,left of=dec3,yshift=-1cm]{Store the fingerprint template in the local file system};
\end{tikzpicture}
\end{document}
