Academic project for implementing deisign patterns