Xcode App for ios iphone-ipad

Important: Please make sure that you read neatly all instructions below, and be sure before starting that you able to do all the required things to save the time and also your efforts.
Under these instructions you will see illustration about how I want the polygon created.
Note: there are just two options to do this (Apple maps and google maps), I have no problem with anyone to be used when all things is applied as I want.
1- The user will open the app, and then the home screen (view Controller Scene) will be appeared with the following options:
A. Login
B. Sign up
C. Confirm registration.
2- In case that the user chose “Sign up”, then the system will take him to another screen (view Controller Scene) which contains the following fields:
A. Full name
B. Email
C. Phone
D. Username
E. Password
After the user hit the button “next”, then the system must make sure from all constraints before moving to the next screen – constraints are:
– All fields are filled
– Email is correct format (example@example.example) and is not used in the database
– Full name – at most 20 chars
– Phone must be international format
– Username – at least 6 chars and at most 10 chars
– Password – at least 6 chars and at most 8 chars
If all thesis constraints are OK, then the user must hit the button “next” to move to the next “map screen”.
3- In “map screen” the system will show a map with search box and some buttons.
– User can write an address in search box, the search box will predict some addresses based on what the user wrote so far, then the user chooses one of predicted addresses or he just ignore that and write other address. When he entered the address (may will be a button or enter) to zoom the map based on entered address.
– Then the user can hit the map by his finger to make “a red mark”, if he hit again, another mark will be created with red line between the previous mark and the last
mark, will continue like this until he hit the first mark, as a result, a polygon will be created with red color, the bounders will be the same lines which created between the marker.
– Reset button, will remove all the created marks and lines between them even the user did not make the polygon, so just reset the map again to start over making a new polygon.
– When the user made his polygon, he will hit “next button”, information (name, password, etc) with polygon coordinates (altitude and longitude) will be encrypted and stored in MySQL database and sending registration code to his email , the user will be moved to another screen when he hit next which is “confirm registration” that asks the user for the code that has been sent to his email, when he provided the code, the system must know whether the user provide or not, then validates by checking the MySQL database. There should be a button to go to the home page which has already this choice “confirm registration” in case the user wants to confirm later.
– After these steps with confirmation, the user will be able to login.
4- Login screen will ask about “username” and password” and one choice which is “forgot password?”, When the user provide his credentials (username and password), the system will first check that whether they correct or not, if not (show the error message), if yes, the system must determines his location, and checks whether he is inside the polygon that he created when he sign up or outside, if inside, then let him to login, if outside, show the same error message (you may need to apply Pint-in-polygon algorithm).
5- When information requested from MySQL, it will be decrypted.
6- If the user hit “forgot password”, the system will ask about his email, and check whether it is exiting in MySQL already or not, if not, show that to the user, if yes, generate a new one and send it to the user’s email (update MySQL).
7- When he logged in, the system will show the home page account as follow:
– Last login: day, date, time
– Full name: customer name example
– Email: example@example.example
– Phone: 111111111
– Options:
1- Reset Password: will ask the user for old password, and new password, and confirm the new one, the system must check whether the old one is correct or not by checking the MySQL DB, if yes update the DB, if no, show error message.
2- Reset Location: shows the map again to make new polygon, then when the user made it, update its coordinates in MySQL DB.
3- Logout: make sure that the session is closed.
This will be in the same screen, and I just put 3 pictures to show “search box” when predicts, and when the user hit on map before he hit the first mark (no polygon yet), and after polygon created; the next button will move the user to “confirmation code screen”.
 See what the best and secure way to encrypt the data is.
 The app should appropriate for iphone4 and with all rotations (left, right, etc).
 You have to submit the open source
 Since the user’s location will be simulated incorrectly throw the Xcode, I have to check the app on the iphone4.
If there is any question, please let me know
Thank you for reading..