The Sample Application: An Online Timesheet System
IN THE REAL WORLD, A NEW SOFTWARE development project is typically initiated because there is some sort of a customer need, problem, or process optimization. This need can be from an internal group or an external party (for example, interfacing with an external partner system or consumer demand for a product). After a problem or need is identified, there is typically some form of a project kickoff meeting to better define the requirements.
As I mentioned in the previous chapter, this book tries to follow a flow similar to how a real-world project might flow. In this book, we will pretend that we have a requirement from an internal group (a fictional customer) and use this requirement to build a sample application named Time Expression.
I considered several types of applications to use as an example in this book; in the end I settled on a rudimentary timesheet system because I believed that it was an application most readers would be able to relate to. For example, you might be an employee or consultant who works by the hour, and you submit your timesheet online (and also get it approved online, and so on).
Our sample application, Time Expression, will have a user interface (UI) as well as some background processing. The UI will be web based and will contain screens that provide the capability to enter hours worked, approve timesheets, run management reports, and more. The background processing will include a weekly (scheduled) batch job that is automatically run to send out a reminder email.