Included is also the sample solution for the first assignment that can be extended to suit the new functions being asked for
The Due date for this is Thursday May 24 @ 5pm
Your task in this assignment is to design, implement, test and document the main components of a simple Weblog system such as Blogger or WordPress.
Specifically, your system, must provide the following features:
* The system should extend that of Assignment 1. (You may either extend your own solution, extend our basic solution, or write a new solution from scratch.)
* Users can register, login and logout (as is common practice in popular Web sites, except that email verification is not required). Logged-in users should see a visual reminder that they are logged-in while they are logged-in. Registered users have a username, a password, a real name and an email address. (You may provide other properties but these are not required.)
* Logged-in users (and only logged-in users) can create new blogs, which they then own. (Assignment 2 thus handles multiple blogs, whereas Assignment 1 handled only one blog.) Each user may own several blogs at the same time.
* Each blog has a title, a summary, an owner, a creation date, and a set of articles.
* Logged-in users (and only logged-in users) may post new articles to blogs they own, and edit and delete articles in blogs they own.
* Each article in a blog has a headline, an author, a body, a publication date, a set of tags, a set of photos, and a set of comments. (You may provide other properties but these are not required.)
* Note that each article belongs to a single blog, but each photo may be used in many articles and each tag may apply to many articles.
* Editing an article allows all properties of the article to be changed, including adding and deleting tags and photos, and deleting comments.
* Note that there is no longer a separate operation to tag articles; article authors may add tags when they post the article and may change tags when they edit the article.
* Logged-in users (and only logged-in users) may post comments on any article.
* Each comment has a title, an author, a date, and a body.
* Note that each comment belongs to a single article. Comment authors may not change their comments after they have been posted.
* Users (who may or may not be logged-in) may view a list of titles of all blogs or may view a list of titles of blogs whose title or summary contains a given search string.
* Users (who may or may not be logged-in) may view a list of headlines of all articles in a particular blog, view a list of headlines of all articles (in any blog) with a particular tag, or view a list of headlines of all articles (in any blog) whose headline or body contains a particular search string.
* Users (who may or may not be logged-in) may view details of a particular article.
* Lists of blog titles and article headlines must be paginated in case they are very long.
* Each title in a list of blog titles must be a link to a page with details of that blog, including a list of headlines of all articles in that blog. Each headline in a list of article headlines must be a link to a page with details of that article, including its author, publication date, body, photos, tags and comments.
* From the page containing the details of an article, the owner of that article (and only the owner) may edit or delete the article, as described above.
* The home page must contain your name, student number and link to your documentation.
* All user input must be appropriately sanitised.
* Selected user input - in addition to user registration and login - must be appropriately validated. (I.e., for convenience, you do not need to validate all user input, but you must validate all user input in at least one form to demonstrate that you know how to do it, and document which user input is validated. Some validation must go beyond the nonempty criterion.)
* All (X)HTML pages returned to the browser must be valid.
* The system must have a simple, attractive, usable, two-column user interface. (The two-column interface may be implemented using either framesets or cascading style sheets.)
* The system must use page transitions that enhance usability.
* The system must satisfy basic accessibility guidelines.
* Within this scope, the system must provide all natural and necessary features to be usable as practical Weblog system.
Directory assign2 then contains a copy of assign1. You should check permissions in assign2. You must create a new set of tables for Assignment 2 with different names from the ones used in Assignment 1 (e.g., you might rename table articles as articles2). You must then user your editor's "replace all" function (carefully) to modify your database access functions in assign2 (e.g., in [url removed, login to view]) to refer to the new table names instead of the old table names.
All required foreign key constraints must be included in the database design provided with the documentation and must be enforced in the implementation. In particular, you must delete all references to an article when you delete the article. Enforcement in the implementation may be done either by using the InnoDB storage engine and SQL cascading delete constraints, or by explicit PHP programming.
Code must be provided to ensure that database transactions that should be performed atomically are performed atomically. Such code must be provided whichever storage engine you use (even if the code is only effective with the InnoDB storage engine).
Recall that it's good practice for every table to have a unique integer identifer as its primary key, except when there is an existing short key (such as student id or course code) that can serve as the primary key or when the integer identifier is not required (e.g., in an article-tags table).
You must demonstrate that you can design and implement the application, using the tools and techniques described during the course. Howevever, if you find yourself implementing the same task repetitively, it may not be necessary, and you should seek advice. Do not implement anything (significant) that is not requested above.
Your submission will require written documentation together with well-commented source files, and possibly a demonstration of your application. Your documentation must be in the form of one or more HTML documents. It must:
* Start with a heading, your name and id, and the date (as all documents you write should!).
* Include the database schema used (i.e., the SQL "create table" statements used) in your application.
* Describe how to use your application, in particular give the URL of the home page, and make it a link to the home page.
* Describe the operation of your application using a transition diagram.
* Provide the usernames and passwords of at least two registered users in the database.
* Describe which (if any) requirements weren't implemented and why.
* Describe which (if any) features do not work properly and why.
* It may be helpful to use the following checklist in providing the above two descriptions:
o User registration, login and logout.
o Creating blogs.
o Creating articles in blogs.
o Updating and deleting articles.
o Browsing lists of all blogs, lists of all articles in a particular blog, and lists of all articles with a particular tag.
o Searching for blogs.
o Searching for articles.
o Paginating lists of blog titles and article headlines.
o Displaying details of articles.
o Uploading and displaying images.
o Posting and viewing comments.
o Performing any other required or optional tasks.
* Describe which (if any) additional features were implemented.
* Describe what (if any) usability testing was performed.
I can pay 50$...let me know if anyone can do this
7 freelancers are bidding on average $550 for this job
My Porfolio: link01: [url removed, login to view] link02: [url removed, login to view] link03: [url removed, login to view] link04: [url removed, login to view] link05: [url removed, login to view]