Database ---- THIS PART IS ALREADY DONE!
You should define the ICouponsDAO interface that lists the methods through which the web application uses the database. You should define two classes that implement this interface. The first (JDBCCouponsDAO) should use JDBC. The second (HibernateCouponsDAO) should use Hibernate. You should develop the CouponsDAOFactory class through which it will be possible to get either a data access object instantiated either from JDBCCouponsDAO or from HibernateCouponsDAO (according to the argument passed over). The CouponsDAOFactory should implement the factory design pattern. The JDBCCouponsDAO and the HibernateCouponsDAO classes should implement the singleton pattern. Your database should include two tables (at the minimum): businesses and coupons. When the project is developed by a team of two (or one) you can choose to develop one of the two DAO classes (either the JDBCCouponsDAO or the HibernateCouponsDAO). ---- THIS PART IS ALREADY DONE!
Administrator Web Interface
You should develop a simple administrator web interface that allows performing the following operations:
1. Adding a new coupon for a business that already exists in the system.
2. Updating a coupon the system already includes its data.
3. Deleting a coupon the system holds its data.
4. Getting a detailed list of all coupons the system already includes. The submission of this part should include a deployable WAR file. This submission should include the previous one. Make sure you test it on Tomcat on your end before submitting it. Make sure you provide detailed information about the database in use. It must be MySQL in accordance with the guidelines below. Your web application should automatically check and create (if needed) the required tables and populate them with initial data when running the web application for the first time.
User Web Interface
You should develop a simple web application for mobile telephones that checks user’s geolocation and present the closest coupons in the category the user selects. The geolocation data should be fetched using HTML5 and the user interface should be developed using jQueryMobile. Your submission of this part should include the two other parts together with all required instructions as explained in the previous two parts. Submission should be in according with the guidelines below.