[CSNS Wiki]
Continue to work on CSNS Wiki and implement the following functionality. Note that all the functionality from the previous homework must work; otherwise you will not receive any credit.
1. (40pt) Page subscription.
Allow a user to subscribe to or unsubscribe from a wiki page. If a user subscribes to a page, whenever the page is edited, the user will receive an email notification. The email should include the title of the page, a link to the page, and a link that allows the user to unsubscribe from the page.
The users who created or edited a page should be subscribed to the page automatically.
For this exercise you should set up a local email server to test the email functionality.
2. (20pt) File attachments.
When a user creates a wiki page, he or she should be able to upload file attachments of the page. When the page is displayed, the names of the file attachments should be displayed, and the users can download a file attachment by clicking on its name.
3. (40pt) Edit attachments.
When a user edits a wiki page, he or she should be able to add or delete file attachments. Deleting file attachments must be implemented using Ajax. Extra credit (+25pt) will be given if Ajax is also used for adding file attachments.
[About Submission and Grading]
For this assignment, in addition to csns.zip, please submit a hw5.txt which includes the following:
Before submitting your work, commit all the changes to your Subversion repository and create a tag.
If you use any libraries that are not in the original CSNS and are not included in your csns.zip, please upload the library jar files together with csns.zip when you submit your work.
To test your project, we will use the following SQL scripts in your csns.zip to create, populate, and then clear the database:
Please make sure that these scripts are up to date and can be run in their entirety without generating any errors. You can check out http://sun.calstatela.edu/~cysun/public/cs520-grading/instructions.txt for more details about the grading procedure.