Learning Outcomes assessed
1. Understanding of multi-tier web application architecture and corresponded infrastructure setup.
2. Use of Servlets as a middle layer technology for web application development
4. Use of JSON/XML as for exchanging messages between web portal and server application
5. Use of HTML/HTML 5 and CSS for web portal rendering.
6. Use of JDBC/Hibernate to operate Database (MySQL).
7. Understanding of how authorisations and authentications of web applications are conducted and are able to implement them for the web application.
In this assignment, you are required to complete a simple online message management system which is composed of three tiers (web portal, middle layer and database). The basic requirement of the online message management is as the followings:
1. Users are able to Add/Remove/Update/Search/ their messages through a web portal. Messages are stored in the back end database.
2. Before they start performing any above actions, they will need to log into the system (therefore, you system should provide basic user registration/login/logout functions as well).
3. They can share their messages with other users by marking the message as public or private. If
a message is marked as public, it can be seen by other users too. So a user can see both messages that are created by himself or messages that are marked as public by other users.
Note: for guidelines what to hand in and what the marker will be looking for, see the marking scheme. Working INDIVIDUALLY:
2. Middle Layer: A middle layer that talks to both database and web portal through message exchange. It should handle all business logics (how messages should be manipulated, how transaction is supported, authorisation and authentication and etc.). The middle layer needs to be implemented conforming to Java Servlet standard. It needs to be done in JAVA rather than any other programming languages. It should not point any specific backend database, but is configurable using web.xml configure file.
3. Database: MySQL database will be used to store data. You will need to define your database schema that support your application. For this assignment, you don’t need to worry too much about the DB normalisation rules and etc. You can use one table even as long as it satisfies your needs.
4. Message Exchange: The messages that are exchanged between the portal and middle layer need to be JSON. This leads the whole system to a completely decoupled manner. No portal will be relying on any specific middle layer’s implementation and vice versa. Both of them are only dependent on the contents of the messages exchanged and interpretations of those messages.
What You Should Submit:
You should submit a zip package and a source code text file via the links on Blackboard. Both files should follow the name convention: YourRegistrationNumber_(FirstName LastName).zip/txt.
• The zip file should contain the following contents:
a. Your web portal folder. This folder needs to be directly deployable and runnable on tomcat 6+ servers. Folder that fails to be deployed or run will be regarded as a failure, and you will lose half marks for web portal section.
b. A war file which can be directly deployed on tomcat 7+ servers. Failure on the deploymentwill lose you half marks for middle layer sections. You will need to be very careful with the all the libraries that you choose to use. Make sure you pack them up in the war file so when the war is deployed, the tomcat server will not complain about missing libraries.
c. A db.sql file that contains all the data you’ve created or used or tested for your project. It can be restored to MySQL database.
d. A report that explains your design, implementation details and any potential problems that you are aware of your development and potential improvement that can be done. Full lists of messages (syntax) that are exchanged between your Servlet service and portal. Explain how the http protocol is used in your implementation if any.
• The source code text file must contain all the source codes you implemented. The content of the file is copied and pasted from all your own *.java source files.