from repository.file import StudentFileRepository from repository.file import GradeFileRepository from controllers.controllers import StudentController from controllers.controllers import GradeController from ui.console import ConsoleUI #Application coordinator #Use dependency injection pattern to asemble the application #create a validator val = StudentValidator() #create repository # repo = StudentRepository() repo = StudentFileRepository("students.txt") #create controller and inject dependencies ctr = StudentController(val, repo) #create Grade controller #gradeRepo = GradeRepository() gradeRepo = GradeFileRepository("grades.txt") ctrgr = GradeController(gradeRepo, GradeValidator(), repo) #create console ui and provide (inject) the controller ui = ConsoleUI(ctr, ctrgr) ui.startUI()