Your assignment should not make use of any extra libraries other than JQuery. All PHP, CSS, HTML must be your own. Your application must consist of a single HTML, additional javascript pages, css, and a collection of one or more PHP scripts. The PHP scripts must return JSON, no HTML. For those that like MVC, the HTML is the view, the PHP scripts are the service and uses the model and the javascript is the controller. In terms of web terminology, this is a Service Oriented Architecture (SOA). Comments: Installation: Note: You must submit the following: A single directory with the following structure: todoAJAX/lib/controller.js todoAJAX/index.html todoAJAX/style.css todoAJAX/service/*.php todoAJAX/service/config.inc todoAJAX/service/sessions todoAJAX/install/README.txt todoAJAX/install/MEMBERS.txt todoAJAX/install/schema.sql todoAJAX/install/MEMBERS.txt has the matriculation numbers of both members of your team. MEMBERS.txt should look like a111111 Jane Doe a222222 Jill Smith so the following will get your matriculation numbers arnold@cp3101b-1:~$ sed -e 's/ .*$//' MEMBERS.txt a111111 a222222 Note: You can have a todoAJAX/service/model.php as well which further isolates the model. This is not necessary though. You can include additional files if you like. config.inc must consist of exactly the following: We will install your application by doing ONLY the following: cp config.inc YOUR_ASSIGNMENT_DIR/todoAJAX/service/config.inc and then pointing our browser at your index.html. If the assignment does not run, it will cost -20% for us to fix your code. If it still doesn't run after a short effort, it will not be marked. Advice: zip your assignment up, give it to your partner, have them install it. It should not matter where in their public_html directory they install it. After removing todoAJAX/install/MEMBERS.txt, there should be no identifying information in your application. -20% if this is not the case. Comments: PHP: [/5] 5/5 Simple, clear, concise code. Well organized code, easy to understand, well documented. Good naming, good naming conventions, good conventions, identifies a few, important concepts and makes good use of them so that code is very simple and clear. Code is structured and predictable. 4/5 Gets the job done, not clear, messy code. Unnecessarily long code. Not well documented. 3/5 Conceptual flaw, or multiple issues 2/5 1/5 Looks like PHP from a distance Your code must deal only with data. It must define a simple, easy to understand protocol. We should be able to use your application using the URL only. It should be clear what messages we need to send, to which scripts and for what effect. It should be clear what the returned data means. The returned data should not be specific to your user interface. Comments: Security: [/5] [YES/NO] Secure against SQL Injection [YES/NO] Secure agains XSS [YES/NO] Correct permissions on all files [YES/NO] Forces HTTPS for all communication [YES/NO] salted, hashed passwords in the database, using a currently secure hash function (Hint: md5 is broken) Comment your code with: // HASH FUNCTION USED: // SALT USED: so we can easily find which function you used and how you salted it. try the following on your code. cd todoAJAX grep -r -e "HASH FUNCTION USED:" grep -r -e "SALT USED:" Comments: Javascript/JQuery: [/5] 5/5 Simple, clear, concise code. Well organized code, easy to understand, well documented. Good naming, good naming conventions, good conventions, identifies a few, important concepts and makes good use of them so that code is very simple and clear. Code is structured and predictable. 4/5 Gets the job done, not clear, messy code. Unnecessarily long code. Not well documented. 3/5 Conceptual flaw, or multiple issues 2/5 1/5 Looks like Javascript/JQuery from a distance Comments: AJAX: [/5] 5/5 Makes great use of Javascript/AJAX at all opportunities where it improves the application. 4/5 3/5 Makes good use of Javascript/AJAX. 2/5 1/5 Uses AJAX, but the application feels like a page at a time web application. [YES/NO] General use of AJAX (service in php scripts, switching UI instead of page fetches) [YES/NO] edit in place for task [YES/NO] add in place for task [YES/NO] delete in place for task [YES/NO] errors beside highlighted fields Comments: Functionality: [/5] 5/5 Full functionality, including some significant extra functionality done exceptionally well. 4/5 Full functionality, works flawlessly 3/5 Functionality with some minor errors 2/5 1/5 Funcationality with major errors Full functionality is Login, Logout, CRU for User and CRUD for Task, implementation of a notion of completion rate [YES/NO] CRUD Tasks [YES/NO] CRU User [YES/NO] Notion of completion rate [YES/NO] Significant extra functionality done exceptionally Comments: HTML, CSS, Usability and design: [/5] 5/5 Great use of HTML, CSS, great design and layout, easy to use. HTML and CSS are simple. Site ID, navigation, page names, button labels, icons, error messages on all fields, conveniently displayed, form variables refreshed/filled/cleared as appropriate, nice to look at, appropriate navigation ... all great. Makes use of multiple appropriate input types. If all inputs are text boxes, something is wrong. Valid HTML5 and CSS. CSS and HTML are used well, great use of HTML5, identify page concepts and style appropriately. Simple, clear, concise code. 4/5 An issue with any of the above categories. 3/5 A working web application with issues in at least two of the above categories. 2/5 1/5 Comments: Total: [/30] Debug Penalty: [-0/-20%] Identification Penalty: [0/-20%] Final Mark: