Can we always construct a matrix using its eigenvectors? In physics, a Hermitian matrix represents an observable and can be constructed using its eigenvalues and eigenvectors in the following way:
$$ A = \sum_i \lambda_i v_iv_i^\dagger \qquad \qquad (1)$$
where $\lambda_i$ and $v_i$ are the $i^{th}$ eigenvalue and eigenvector and $v_i^\dagger$ is the transpose conjugate of $v_i$.
The proof is the following:
If the eigenvectors form an orthonormal basis, $\{v_i\}$, then we have: 
$$ \sum_i v_iv_i^\dagger =1$$
This must be true becuse we have can write a vector $u$ in the $\{v_i\}$ basis by: 
$$ u = \sum_i v_i v_i^\dagger u $$
Therefore, we can apply this identity twice to $A$ and get:
$$ A = \sum_i \sum_j v_iv_i^\dagger A v_jv_j^\dagger = \sum_i \sum_j v_iv_i^\dagger \lambda_j v_jv_j^\dagger=  \sum_i \sum_j \lambda_j v_iv_i^\dagger  v_jv_j^\dagger = \sum_i \sum_j \lambda_j v_i \delta_{ij} v_j^\dagger= \sum_i \lambda_j v_i  v_j^\dagger$$
Is equation (1) only valid for matrices having eigenvectors that form a basis? Or all matrices can be constructed in this way?

If the eigenvalues of $A$ are real, but $A\neq A^\dagger$, then the right hand side of (1) is Hermitian, but the left hand side is not, so (1) fails.  An example is $$\left(\begin{array}{cc} 1&1\\0&2\end{array}\right)$$.
