Guest book and feedback system for events.
This application is a web-based guestbook. Organizers of an event launch the app in “kiosk mode” on computers set up at the entrance to an event. Event attendees track their attendance at the event by logging in to the kiosk with their email on their way in.
This system can also be used to facilitate feedback. Attendees could be asked to log in to the system again following the event to fill out a short survey, which would be recorded for the presenters to review later.
This application consists of three separate modules: the Sign-In Kiosk, the Organizer Console, and the Guest Console. The console modules may be accessed at http://[hostname]:8080/GuestBook/manager. The contents of the console will depend on whether the user logging in is an Event Organizer or a Guest. The Sign-In Kiosk for an event can be launched from the Event Organizer Console.
The Event Organizer Console allows you to perform the following functions:
Guests can use the console to perform the following functions.
The sign-in kiosk, which is launched for a specific event from the Event Organizer Console, allows users to sign in to that event. The kiosk will check for the user's registration status for the event, and sign them in appropriately. If a survey is required for the event, the guest will receive a reminder. If the guest enters an unrecognized email address, they will be given the opportunity to create a new account.
The project follows the standard Maven directory layout for Web applications (http://bit.ly/1Mof9DC)
All Java source code will be contained in src/main/java/com/cis498/group4/
. Controller servlets will be placed in com.cis498.group4.controllers
and model objects will be placed in com.cis498.group4.models
. Utility classes (e.g. database connection utilities) go in com.cis498.group4.util
. Data access objects (DAO) classes, which are used to perform database operations, go in com.cis498.group4.data
. See http://bit.ly/2nTYlvM
The web root is src/webapp/
. All JSP, HTML, CSS, images, Javascript, etc. will go in this folder and its subdirectories (e.g. /img
, /scripts
, etc.). JSP views should go in /views
. Partial JSP views (e.g. _header.jsp
) should go in /templates
.
IMPORTANT: The database connection properties must be configured before building and deploying the application.
/db/schema.sql
/db/testdata.sql
to populate the database with sample data. You may use one of the sample organizers with the password cis498
to log in to the application.schema.sql
and testdata.sql
again will refresh the app to its default state./src/main/resources/db.properties
. Edit this file to configure the URL, username, and password used to connect to your MySQL instance. You should not need to change the "driver" property.(SEE: http://bit.ly/2p0YeQh)
This is useful for deploying to a running Tomcat instance for development and testing.
{TOMCAT_HOME}/conf/tomcat-users.xml
:
<role rolename="manager"/>
<role rolename="admin"/>
<role rolename="manager-gui"/>
<role rolename="manager-script"/>
<user username="{Username}"
password="{Password}"
roles="manager,admin,manager-gui,manager-script"/>
{M2_HOME}/libexec/conf/settings.xml
, inside the <servers>
tag:
<server>
<id>{ServerName}</id>
<username>{Username}</username>
<password>{Password}</password>
</server>
<url>
tag in the Tomcat plugin matches your hostname and port, and the <server>
tag matches the {ServerName}
you added to Maven in Environment Setup, above./src/main/java/db.properties
(See MySQL database setup, above).mvn tomcat7:deploy
, or mvn tomcat7:redeploy
if you have deployed the project on your server previously.This is useful for building a Web Archive (WAR) for final deployment to a Servlet container. This is also an easy way to push new versions, or "refresh" the application.
/src/main/java/db.properties
(See MySQL database setup, above).mvn package
{Project Root}/target
Or deploy via the Tomcat web manager gui: http://{hostname:port}/manager/html