add projects feature, support save data to local storage