Preface
[ 2 ]
Chapter 3, Tasklist I: Persistence, a full edged web applicaon needs funconality to store
informaon on the server and a way to idenfy dierent users. In this chapter, we address
both issues as we develop a simple applicaon to maintain lists of tasks.
Chapter 4, Tasklist II: Databases and AJAX, refactors the tasklist applicaon developed in
the previous chapter. We will use the SQLite database engine on the server to store items
and will use jQuery's AJAX funconality to dynamically update the contents of the web
applicaon. On the presentaon side, we will encounter jQuery UI's event system and will
learn how to react on mouse clicks.
Chapter 5, Enes and Relaons, most real life applicaons sport more than one enty and
oen many of these enes are related. Modeling these relaons is one of the strong points
of a relaonal database. In this chapter, we will develop a simple framework to manage
these enes and use this framework to build an applicaon to maintain lists of books for
mulple users.
Chapter 6, Building a Wiki, develops a wiki applicaon and in doing so we focus on two
important concepts in building web applicaons. The rst one is the design of the data layer.
The wiki applicaon is quite complex, and in this chapter, we try to see where the limitaons
in our simple framework lie. The second one is input validaon. Any applicaon that accepts
input from all over the Internet should check the data it receives, and in this chapter, we look
at both client-side and server-side input validaon.
Chapter 7, Refactoring Code for Reuse, aer doing a substanal bit of work, it is oen a good
idea to take a step back and look crically at your own work to see if things could have been
done beer. In this chapter, we look at ways to make the enty framework more generally
useful and employ it to implement the books applicaon a second me.
Chapter 8, Managing Customer Relaons, there is more to an enty framework and CherryPy
applicaon code than merely browsing lists. The user must be able to add new instances and
edit exisng ones. This chapter is the start of the development of a CRM applicaon that will
be extended and rened in the nal chapters.
Chapter 9, Creang Full-Fledged Webapps: Implemenng Instances, focuses on the design
and implementaon of the user interface components to add and maintain enes,
and relaons between enes, in a way that is independent of the type of enty. This
funconality is immediately put to use in the CRM applicaon that we develop. Managing
user privileges is another issue we encounter as we explore the concept of role-based access
control.
Chapter 10, Customizing the CRM Applicaon, is the nal chapter and it extends our
framework and thereby our CRM applicaon by taking a look at browsing, ltering,
and sorng large numbers of enes. We also take a look at what is needed to allow
customizaon by the end user of the applicaon's appearance and its funconality.