How to find universal covering space?

If our topological space is connected, locally connected and semi-locally simply-connected, then we know that a universal cover exists. Knowing the existence, my question is how to find universal cover explicitly? Any help in this regard will be appreciated. Thank you.

• Is there any construction other than hatcher?I find it quite long construction ... – Ripan Saha Feb 26 '15 at 10:56
• I don't find Hatcher's construction long at all. It puts a nice topology on the set of homotopy classes of paths on $X$. The verification of simple connectedness might be a bit tedious, but I don't see what else is "long" there. – Balarka Sen Feb 26 '15 at 11:43

An algebraic model of a covering map is a covering groupoid morphism, $q: H \to G$, namely a groupoid morphism such that for each $x \in Ob(H)$ and $g$ from $q(x)$ to some $y$ there is a unique $h$ in $H$ starting at $x$ such that $q(h)=g$.
If $p: X \to B$ is a covering map, then the induced morphism of groupoids $\pi_1(X) \to \pi_1(B)$ is a covering morphism of groupoids.
If $G$ is a connected groupoid, then an easy construction of a universal covering groupoid of $G$ is to choose $x \in Ob(G)$ and let $Ob(H)$ be the set of elements of $G$ starting at $x$, with $Ob(q)$ being the end point map. An element of $H(g,g')$ is to be a pair $(h,g)$ of elements of $G$ such that $hg=g'$.
Note that this construction if $G=\pi_1(B)$ requires no conditions on $B$. It is the construction of the lifted topology which requires the local conditions.