In many situations, organizing schedule for many people is hard to do. In some cases, each participant has to be assigned a timeslot among all available time intervals. For example, in a conference, sessions are assigned to speakers for presentation. In a class, students sometimes need to demonstrate their programming assignments. The TA should assign a timeslot to each student for demonstration.
In this assignment, we are going to design a web-based timeslot signup system, using Project Zero with Groovy and Java. The system lets users browse current available and occupied timeslots, signup their preferred timeslots in first-come-first-serve manner. More specifically, the system should have the following functionality,
See my example implementation. Your interface need not be like mine---it is just for reference---as long as it's intuitive. Your program should take care of common errors like entering invalid values and doing invalid operations.
NOTE: Please follow the instructions below to setup environment, making sure your program can run on TA's machine.
Project Zero is an agile development environment for web applications. Here are steps for setting up Project Zero.
We use MySQL 5. Other databases are not recommended, in order to make sure your program can work successfully on TA's computer. Please use only one table for this assignment, timeslot.
mysqladmin -u root create csc513p1We can also do this using GUI tools, one of which can be found here.
We need to download MySQL Connector/J to let Project Zero be able to access MySQL database. Extract the downloaded file and put only mysql-connector-java-5.1.5-bin.jar in the lib folder of your Eclipse project. Remember to refresh the project and restart Project Zero server.
Then follow the instructions at Database Setup Tool. Here are the SQL files you may need: 1) create.sql, 2) drop.sql, 3) sample.sql.
Please follow the intructions Exporting applications in Eclipse here, to export your program into a zip file. Please CHECK the include source and UNCHECK standalone options. Submit the files through submit tool. Also submit a README file if necessary.