my final project for a B.Sc degree in software engeneering