add requirement and gitignore