This document summarizes the formulation, implementation, analysis and evaluation of different integer programming models for optimizing student-project allocation. Model 1 assigns each student to exactly one topic based on their preferences while satisfying supervisor and topic capacity constraints. Model 2 adds penalties to encourage distributing students across more topics without sacrificing preferences. The results are analyzed for student satisfaction and constraint satisfaction. Alternative formulations are reviewed that consider collective satisfaction, fairness and computational cost trade-offs.