1) Identify the primary programming language used in your application? The primary language that I will use will be PHP and HTML. PHP will be used more heavily since I am using the $_SESSION in PHP to identify who just logged into the website and only display what they have access to. Not only that, PHP will handle all the SQL calls that I will need to make for all the pages that will be created. HTML will be the looks of the website while everything will be handled by PHP. 2) Is your language complied or interperted? PHP is both a complied and interperted language. PHP is compiled down to an intermediate byte code that is then interpreted by the runtime engine. The PHP compliler's job is to parse the PHP code and convert it into a form suitable for the runtime engine. During this it is suppost to Ignore comments, Resolve variables, function names, and create the symbol table, Construct the adstract syntax tree of the program, and lastly write the bytecode. Luckly those steps listed above are typically only done once when the script is called. Unless the code is changed in which it recompiles everything. The runtime engine walks the bytecode when the script is called. The symbol table is used to store the values of each variable and provide the bytecode address for the functions. 3) Identify the underlying components of comminication that will be used in your application. High-Level The comminication of the web site will happen on these pages: login.php, create_quiz.php, take_quiz.php, view_scores.php, view_all_scores.php. All the communication will happen through PHP and the MYSQL database. The type of communication that this website has is reliant on the other user/admin to complete there step in order to complete what they need to get done. User Login -----> Searches for Quizes to take -----> Takes Quiz -----> Score gets stored in databse Admin Login ------> Querys to see all scores | | ---> Create Quiz | | ---> Add Curve to Quizzes Low-Level One standard that alot of people follow is having the code to connect to the database in its own file and include it into each file that needs a database connection. This allows you to hide config file on github in order to not share your credentials to your database. 4) Waiting For the communication of my website there are 3 major spots where waiting will happen. 1st) The Teacher will create a quiz. During this time the Students will be waiting for the Teacher to finish and submit the quiz which will upload it to the sql database. At this point the Students will be able to see that there is a new quiz and be able to take the quiz. 2nd) The student will take the quiz. During this time the Teacher will be waiting for the Student to finish so they can see all the Student scores. This waiting will take longer since all student will need to finish the quiz and then the teacher will be able to see all the users scores. 3rd) The last wait will be for the Students. They will wait to see if the Teacher decides a curve is needed for the quiz taken. If the Teacher determines that the quiz needs a curve, they will apply one and the Students will be able to see the change to there grades. All my waiting for this project is done by SQL call. Onces teh data is in the database the other Users will be able to see it.