add upload file function
refactor code
finish project function