INFS3202/INFS7202 Web Information Systems Project Milestone 2 (20%) Due at 17:00 PM on Friday, 1st May 2020 (Week 8) Project Milestone 3 (20%) Due at 17:00 PM on Friday, 29th May 2020 (Week 12) Marking criteria • All work on this assignment is to be your own individual work. Using the code supplied by course staff or released on the Internet is acceptable. However, you should understand the underlying mechanism of each implemented feature in your project. You may lose marks if you cannot explain the code to the tutors clearly. • You must deploy your project to a remote server (e.g., UQ zone, AWS) to get it marked. • Your project must be implemented in a 3-tier architecture, which means communications among front-end, back-end, and database are expected. • You must complete all compulsory features (refer to Appendix 1) in your project and demonstrate them in either Milestone 2 or Milestone 3 (i.e., final submission). Otherwise, the final marks for your entire project will be capped at 20%. • Besides the compulsory features, you are encouraged to creatively design and develop innovative features that are appropriate for your project purpose. Refer to Appendix 2 for sample features with different credits (marks) according to their difficulty levels. • The final marks you will obtain in Milestone 2 will be the total marks for the elective features that are successfully implemented in your project. Please be aware that the final marks will be capped at 20%. Thus, you can select only a subset of completed features for marking and leave the remainder to Milestone 3. • Note that, one feature can be only marked once. For example, the functions of registration for admin and for users are considered as the same feature due to the high similarity of their implementations. Blackboard Submission ● You should compress all your source code files into a zip file and submit it to the blackboard at Assessment – Milestone 2 Submission before the deadline. A penalty will be applied to the late submission. ● The file should be named using the following format: “sxxxxxxx_milestone2.zip”, (replace sxxxxxxx with your Student ID, e.g., s1234567_milestone2.zip) ● Only your submitted version will be marked. Appendix 1 – Compulsory Features 1.1. Login ● Server-side validation is required (e.g., informing the user if the username is not registered in the database or if the password is incorrect). ● Each page should reflect the user’s login status (e.g., profile/logout button should appear only when the user has logged in). ● Some content should only be visible for logged-in users. ● Choose an appropriate HTTP request method (e.g., GET, POST, PUT, etc.) for client-server communication. 1.2. Registration ● Username and email address should be checked to be unique. ● Password strength should be checked. ● The registered user data should be saved in the database. ● Choose an appropriate HTTP request method (e.g., GET, POST, PUT, etc.) for client-server communication. 1.3. User Profile ● Create a user profile interface which is only accessible when the user has logged in. ● All the user’s information should be fetched from the database. 1.4. Cookies ● Use cookie in at least one of features you implemented 1.5. AJAX ● Use AJAX in at least one of features you implemented. Appendix 2 – Elective Features (applied to both Milestone 2 & 3) 1. Basic Level (2% each) ● Remember me: retain user’s login details even after session expired. ● Maintain scroll position of large HTML page when client return ● Continuously loading data when scrolling ● Favorites, voting or rating ● Search box autocompletion ● Adding items (e.g., dishes, events, goods, pictures) ● Writing comments/reviews ● User profile updating (e.g., email, phone number) ● Display the user’s current location on a map ● Image processing (e.g., resize, compress and add watermarks to images) ● Third party API integration (e.g., sending an SMS to verify phone number using SMS API) ● Basic file uploading: (e.g., profile image, food pictures, thumbnails) ● Using drag and drop to choose files for uploading (prerequisite: basic file uploading) ● Multiple files uploading at the same time (prerequisite: basic file uploading) ● Web Security (e.g., captcha, password encryption, data sanitizing) ● Online Payment Integration (e.g., PayPal, Stripe) ● Image and PDF Manipulation (e.g., sending receipt) ● Others at the same difficulty level 2. Intermediate Level (3% each) ● Item Searching (e.g., images, meals or items, depending on the topic) ○ Each resulting search item should contain a link which redirects to a detail page ● Email Verification ○ After registration, an email should be sent to the user for the email verification ○ This feature could be implemented using a random token or a verification code ○ The user should be able to see the verification status, i.e. email verified or not ● Forgot Password ○ Take account of security concerns. ○ This feature could be implemented using reset tokens or secret questions ● Shopping Cart/Wishlist/Calendar ○ The information should be stored in the database ○ Users should be able to add and remove items from the cart/wishlist/calendar. ● Others at the same difficulty level 3. Advanced Level (4% each) ● Data Mining (e.g., association rule mining) ● Management Dashboard (statistical information) ● Push Notification (e.g., when the item is sold, when the meal is delivered) ● Recommendation Algorithm (statistic based) ● Computer Vision Algorithm (e.g., detecting objects in images) ● Real-time Chatbox (self-implemented) ● Others at the same difficulty level Note that, if you are unsure the level of your elective features, feel free to contact the tutors for confirmation.