Citation
School Teacher Online Planner and Website

Material Information

Title:
School Teacher Online Planner and Website
Creator:
FOLMER, LUMARI
Copyright Date:
2008

Subjects

Subjects / Keywords:
Art teachers ( jstor )
Database design ( jstor )
Databases ( jstor )
Graphical user interfaces ( jstor )
HTML ( jstor )
Java ( jstor )
Lesson plans ( jstor )
Personal computers ( jstor )
Schools ( jstor )
Web pages ( jstor )
City of Miami ( local )

Record Information

Source Institution:
University of Florida
Holding Location:
University of Florida
Rights Management:
Copyright Lumari Folmer. Permission granted to the University of Florida to digitize, archive and distribute this item for non-profit research and educational purposes. Any reuse of this item in excess of fair use or other copyright exemptions requires permission of the copyright holder.
Embargo Date:
8/1/2013
Resource Identifier:
53207978 ( OCLC )

Downloads

This item is only available as the following downloads:


Full Text

PAGE 1

SCHOOL TEACHER ONLINE PLANNER AND WEB SITE By LUMARI FOLMER A THESIS PRESENTED TO THE GRADUATE SCHOOL OF THE UNIVERSITY OF FLOR IDA IN PARTIAL FULFILLMENT OF THE REQUIREMENTS FOR THE DEGREE OF MASTER OF ENGINEERING UNIVERSITY OF FLORIDA 2003

PAGE 2

Copyright 2003 by LUMARI FOLMER

PAGE 3

Dedicated to my loving husband, Brennan.

PAGE 4

ACKNOWLEDGMENTS First of all, I would like to thank my advisor, Dr. Doug Dankel II. I could not have written this thesis without his guidance and input throughout my thesis research. I would also like to thank Dr. Beverly Sanders and Dr. Manuel Bermudez for being on my committee. I would like to give a great big thanks to my husband, Brennan Folmer, for his support while I was writing this thesis. He has always inspired me to keep growing and learning and without him this thesis would not have been possible. I thank my mother, Maria Quintana, for always asking: “How’s the thesis coming along?” She has always been my biggest supporter and mentor. I would like to thank my brothers, Mario, Luis and Ricardo Quintana, for always letting me know that I could accomplish anything. Finally, I would like to thank the rest of my family for their support: Tom and Connie Bulson; John, Pat and Ryan Glenny; Bucky and Debbie Folmer; Bob Folmer; Manuel Quintana; Lucila Morales de Reise; Juan, Pepe, Placido, Alexandro, Felix, Luis, Hilda and Nena Morales. iv

PAGE 5

TABLE OF CONTENTS page ACKNOWLEDGMENTS.................................................................................................iv LIST OF FIGURES..........................................................................................................vii ABSTRACT.......................................................................................................................ix CHAPTER 1 PROBLEM DESCRIPTION........................................................................................1 Overview of WebPlan...................................................................................................3 Overview of TWEB......................................................................................................4 Thesis Organization......................................................................................................5 2 LITERATURE SURVEY AND TECHNICAL REVIEW...........................................6 Teacher Notebook PRO................................................................................................6 Lesson Planner II..........................................................................................................7 InetTeacher...................................................................................................................9 Java.............................................................................................................................10 Java Foundation Classes.............................................................................................11 Java Applets................................................................................................................11 Java Servlets...............................................................................................................12 Tomcat........................................................................................................................13 3 DESIGN REVIEW.....................................................................................................14 Design Concepts and Principles.................................................................................14 Interview.....................................................................................................................17 Teacher Routine and Data Manipulation Description................................................18 4 DATABASE DESIGN AND USAGE.......................................................................21 Cloudscape Database..................................................................................................21 Embedded Database............................................................................................21 Java Database Connectivity Driver and Servlet Usage.......................................22 Structured Query Language.................................................................................23 Multiple Connectivity..........................................................................................25 Other Features.....................................................................................................25 v

PAGE 6

Database Schema........................................................................................................26 5 WEBPLAN USER OVERVIEW...............................................................................29 Planner........................................................................................................................29 Activities.....................................................................................................................30 Button Commands......................................................................................................31 Open Command..........................................................................................................31 Save Command...........................................................................................................31 Delete Command........................................................................................................32 Planner Views.............................................................................................................32 6 WEBPLAN IMPLEMENTATION DETAILS...........................................................37 Data Handler...............................................................................................................38 Master Table...............................................................................................................40 MasterTableHandler...................................................................................................43 ToolBar.......................................................................................................................44 ToolbarHandler...........................................................................................................45 Teacher ToolBar.........................................................................................................45 Communication Among Components........................................................................46 BorderLayout Manager...............................................................................................50 7 TWEB USER OVERVIEW AND IMPLEMENTATION DETAILS.......................51 TWEB Implementation Details..................................................................................53 Conclusion..................................................................................................................54 8 EXTENSIONS AND CONCLUSION.......................................................................55 Extensions...................................................................................................................55 Conclusion..................................................................................................................57 LIST OF REFERENCES...................................................................................................59 BIOGRAPHICAL SKETCH.............................................................................................60 vi

PAGE 7

LIST OF FIGURES Figure page 2.1 Teacher Notebook Pro Weekly View.........................................................................6 2.2 Lesson Planner II Starting Icons................................................................................8 2.3 Lesson Planner II Lesson Plan Process Diagram.......................................................8 2.3 The Java SDK...........................................................................................................10 3.1 Daily Schedule.........................................................................................................18 3.2 Data Relation Diagram.............................................................................................20 4.1 Cloudscape Embedded System................................................................................22 4.2 Sample SQL Query Execution Code........................................................................24 4.3 Create Table Command Sample...............................................................................26 5.1 WebPlan...................................................................................................................29 5.2 Date Range Dialog...................................................................................................31 5.3 Selected Activity......................................................................................................32 5.4 Subjects Filter View.................................................................................................33 5.5 Types Filter View.....................................................................................................34 5.6 Subjects and Types Filter View...............................................................................34 5.7 Single Date Filter.....................................................................................................35 6.1 WebPlan Components Diagram...............................................................................37 6.2 HTML Code.............................................................................................................38 6.3 Data Connection Code Sample................................................................................39 6.4 Data Handler Servlet Procedure Calls......................................................................40 vii

PAGE 8

6.5 Master Table Component Layers.............................................................................41 6.6 Master Table Handler’s Data Organization.............................................................43 6.7 Toolbar Class Procedures.........................................................................................45 6.8 Teacher ToolBar Component Diagram....................................................................46 6.9 Master Table Components.......................................................................................47 6.10 Action Listeners.......................................................................................................48 6.11 Delete Button Operation...........................................................................................49 7.1 TWEB Interface for Date Range Selection..............................................................51 7.2 Writing Subject HTML Page...................................................................................52 7.3 Writing Subject Link Code Sample.........................................................................53 8.1 TWEB Web Design Program Interface....................................................................56 viii

PAGE 9

Abstract of Thesis Presented to the Graduate School of the University of Florida in Partial Fulfillment of the Requirements for the Degree of Master of Engineering SCHOOL TEACHER ONLINE PLANNER AND WEB SITE By Lumari Folmer August 2003 Chairman: Douglas D. Dankel II Major Department: Computer and Information Science and Engineering A teacher’s weekly planner is the schedule by which schoolteachers organize their daily activities. Schoolteachers use these weekly planners to track their in-class activities such as lesson plans, class work assignments, homework assignments, and projects as well as other school-related activities such as field trips, book fairs, fundraising activities, and field days. Although there are software applications and software tools that help maintain schoolteachers’ weekly planners, many use notebook weekly planners because they are simple and easy to use by teachers who have little or no computer training. Some schoolteachers are using the Internet as a source of information for parents and students by publishing the activities contained in their weekly planners. There are numerous software applications that provide a way for them to maintain and publish their own web sites. Only a small percentage of schoolteachers take advantage of this form of communication due to the computer training that is involved in learning these web page software applications and the time necessary to replicate the information from their planners. ix

PAGE 10

This thesis describes a teacher’s weekly planner web application called WEBPLAN. Designed for use by schoolteachers teaching grades kindergarten through high school, it has an intuitive interface that looks like the notebook weekly planner, thereby enabling teachers to begin working with little computer training. The teacher’s weekly web application planner provides teachers an easy-to-use planner so that they can create, modify, and have a history of their weekly tasks from anywhere. This thesis also describes a set of web pages, called TWEB, that are directly connected to WebPlan’s database so that changes are automatically updated in the teacher’s web site. This set of web pages provide a simple solution for teachers so that they can avoid many of the hassles of learning Internet terminology and web page development applications. WebPlan and TWEB are designed for schoolteachers with little computer knowledge to simplify planning, eliminate repetition, minimize unnecessary computer training, and employ the Internet as a tool to communicate with parents and students. x

PAGE 11

CHAPTER 1 PROBLEM DESCRIPTION Currently, a schoolteacher maintains and stores a weekly planner in one of several different ways. Teachers organize their activities using a notebook weekly planner, a desktop weekly planner software application, or a customized software tool. All of these methods have different advantages and disadvantages depending on the teacher’s level of computer knowledge. The notebook weekly planner is one of the common methods of organizing weekly activities. It requires no computer knowledge. The notebook weekly planner is organized by each calendar week divided into columns and rows. The column headers represent the subjects and row headers represent the day of the week. Each block displays times and activities such as lesson plan, class work, and homework for a given subject and day. This planner only provides a set amount of space in which to write the activities performed for that subject and time. One problem in using these planners is that it involves erasing and rewriting several blocks of information when teachers reorganize their weekly schedule. Another problem is that a teacher who wants to compare their current activities with previous academic years must organize and store those older weekly planners. An advantage of this notebook planner is that it can be carried to and from work and provides teachers with the ability to work on it from home. The notebook planner is easy to manage by teachers because they simply enter all their information weekly. Notebook planners are organized weekly so the teacher has the flexibility to change the 1

PAGE 12

2 order of subjects during a week. It also allows the teacher to see what they have covered for a particular subject within a week period. Several software applications provide the organization of a teacher’s weekly planner. These applications provide easy management tools supporting activities such as move, copy, and delete of tasks. Unfortunately, they usually have non-intuitive interfaces, which require teachers to go through training to setup the application, understand workflow, and understand the different provided utilities. Simple tasks are often cumbersome to perform. These software applications are also desktop applications, which means that teachers must learn to install the application at home as well as at work, and they require that they save and transport their information to work from home. There are also software tools such as Microsoft Word and Microsoft Excel that can be programmed to allow teachers to create their own customized weekly planners. Teachers that use this method have usually received computer training in the specific tool, or they have hired a computer programmer to customize the tool for them. All of these methods do not provide integration with other third party tools, which would allow teachers to use the data from the weekly planner. Teachers, therefore, must maintain separate applications or documentation of the same information kept in the planner. For example, an activity in the planner such as a homework assignment would have to be re-entered in a web page application to update the information in the schoolteacher’s web site. This can become very time-consuming. Schoolteachers also have to learn web page terminology and developing medium to have and maintain their web site.

PAGE 13

3 The focus of this thesis is to research and develop a weekly planner application that combines all the advantages of a notebook planner and eliminates some of the disadvantages. This thesis also develops a set of web pages called WebPlan that eliminates repetitious work of re-entering activities in third party software applications and minimizes the learning curve on web page design and development. Overview of WebPlan WebPlan is a web application written in Java. It is a three-tier application. The user interface is written using Java Swing components in a Java applet, which is embedded in a web page, to provide an easy-to-use interface. It provides management tools that enable the schoolteacher to create, delete, and move tasks within the weekly planner. The interface layout is very similar to the notebook weekly planner so that very little training is required. The Java applet communicates with a Java servlet, the middleware, which handles communication with a web server. The applet sends requests to the Java servlet to save or retrieve information. The servlet communicates with a database to store or retrieve data. The database, the bottom tier of this system, resides on the server. The database is designed to contain all activities for each subject and date. It also contains layout information such as the name of the column headers and the weekly headers. Using a database also provides a way for third-party applications to be combined with this application. This web application allows teachers to access their planners from work or home without have to save to and reload information from a disk. In summary, it provides a

PAGE 14

4 convenient method for teachers to manage their weekly planner and other applications easily and efficiently. Overview of TWEB TWEB is also a three-tier application. The top layer is a set of web pages written in html that can be viewed in a web browser. This set of web pages compose the schoolteacher’s web site that contains general information such as teacher information, school information, and classroom general guidelines. They also contain class work activities that were created in WebPlan. This enables students and parents to go to the teacher’s web site and find information about homework assignments in the different subject areas, projects, and more. When web pages containing activity information contained in WebPlan are requested, a Java servlet processes the request and outputs the information in a html web page. The Java servlet serves as the middle tier that handles the retrieval of information from the database. It outputs a dynamically created html web page containing this information. The servlet always retrieves the latest activities since activities are updated in and saved to the same database used by WebPlan. This means that the latest information is always available for parents and students when viewing it on the web. This eliminates the need for schoolteachers to re-enter and update the activities that were changed in a web page developing application. The database serves at the bottom layer of this application. It was integrated with TWEB through the Java servlet to enable teachers to communicate to parents and students through the Internet. Using TWEB schoolteachers avoid having to create web pages and update activities by hand. It also minimizes the learning curve on Internet

PAGE 15

5 technologies and applications that are used to create web sites for schoolteachers with minimal computer knowledge. Thesis Organization This thesis is organized into eight chapters. Chapter 2 discusses the advantages and disadvantages of other similar applications. This chapter also has an overview of the various technologies used in developing the different components of the system. In Chapter 3, I cover the background details involved in the design process and other issues used to develop WebPlan and TWEB. Included are issues of the design process, used to create the “common teacher” that the WebPlan and TWEB are intended to target, and the graphical user interface (GUI). The teacher information that is used and stored by the database is discussed in Chapter 4. The database schema and Java servlets, the one used by WebPlan and the one used by TWEB, are also discussed in detail in Chapter 4. Chapters 5 discusses the workflow of the WebPlan user interface. Chapter 6 details the functionality and interaction of the different Java Swing components and the applet used by WebPlan. In Chapter 7 an overview of the TWEB user interface and the functional details are covered. Finally, Chapter 8 provides extensions and conclusions for both WebPlan and TWEB.

PAGE 16

CHAPTER 2 LITERATURE SURVEY AND TECHNICAL REVIEW This chapter begins with an overview of other applications similar to WebPlan and TWEB. It discusses some of the benefits and disadvantages of these applications. This is followed by a description of the different technologies used for WebPlan and TWEB and some of their important characteristics. Teacher Notebook PRO The Teacher Notebook PRO is a desktop application created to look and feel like a notebook and schoolteacher’s grade book. The notebook section has a spreadsheet layout with the subjects across the top and the days of the week a long the left side of the planner. This layout is the same layout teachers have in their notebook weekly planners. The notebook section has two views, the daily view and the weekly view shown in Figure 2.1. Figure 2.1 Teacher Notebook Pro Weekly View 6

PAGE 17

7 “The lesson plans can be copied and pasted in Excel spread sheets and used over again” [TIS03]. The Teacher Notebook PRO also allows users to preview then print the planner activities. There are several disadvantages to the Teacher Notebook PRO. Teachers have to install the Teacher Notebook PRO since it is desktop application at their work computers and home computers if they want to work from home. In order to keep the two versions synchronized a schoolteacher would have to learn to copy and paste the planner into Excel then save and input into the other computer. Unlike other products the command buttons such as copy, paste, and spell check are displayed at the bottom of the screen. This might confuse the schoolteacher on what data can be changed when using these commands. There is also no distinction between class assignments, class work or any other type of activities. Although Teacher Notebook Pro notebook section looks very similar to a paper notebook weekly planner, schoolteachers would need to have some computer knowledge about computer requirements, installation and using Excel. Lesson Planner II The Lesson Planner II is a desktop application that teachers can use to maintain their planner information, address information, and mailing labels. If the modem on the computer is connected to the telephone line then the Lesson Planner II could even dial the number that was selected from the telephone list. The Lesson Planner II is driven by a set of icons shown in Figure 2.2. From this set of icons teachers can click on an icon to start working in the selected area.

PAGE 18

8 Figure 2.2 Lesson Planner II Starting Icons After setting up the Lesson Planner II with a list of subjects, schoolteachers have to follow three steps in order to create a lesson plan for a particular subject: 1. Select the Subject 2. Select one or more objectives 3. Select one or more Text / Resource / Assignment entries. The schoolteacher can then click on the Print button to print your lesson plan. “The Lesson Planner II also allows schoolteachers to prepare a lesson plan for each day from scratch, or by copying and modifying another earlier lesson plan” [NIC03]. Figure 2.3 Lesson Planner II Lesson Plan Process Diagram

PAGE 19

9 Lesson Planner II has several disadvantages. In Figure 2.3 there is an example of the different windows that would be displayed if a schoolteacher were to create and print a lesson plan. From the perspective of a schoolteacher learning the different commands and learning how to implement the steps to create a lesson plan using these different windows is more complicated then the notebook weekly planner. Teachers would also have to learn or know about the computer requirements and installation procedures for this desktop application. Again if teachers wanted to work from home they would have learn to maintain both copies up to date. InetTeacher The InetTeacher is a website that allows schoolteachers to setup their websites. It helps schoolteachers manage their website without having to code in HTML. InetTeacher allows teachers change the colors and fonts, add images and add as many pages to their website. Schoolteachers can update their information anytime using a computer that has Internet connection. “InetTeacher also provides a secure way for teachers to post grades and for parents to view their child’s grades using InetGrades” [ACT03]. Although InetTeacher simplifies the process of creating a website, schoolteachers would require some training to using InetTeacher. Some schoolteachers would also need to learn some basic Internet terminology and concepts. For example, schoolteachers need to understand what a link means and how use them to connect their web pages together. InetTeacher also only provides a manual way to update or create any activities or assignments. On a weekly basis schoolteachers would have to update their websites with the current week’s information from their planner. Teachers would also have to update

PAGE 20

10 their websites if they wanted to reflect changes that occurred during the week. This maintenance work can be time consuming. Java Java is an object-oriented programming language created and released by Sun Microsystems in 1995. Sun Microsystems designed Java to be a machine-independent programming language. To accomplish this, the Java compiler converts Java source code to a binary representation consisting of byte codes. These bytes codes are machine instructions for the Java virtual machine. A Java interpreter, which runs within the Java virtual machine, then executes the byte code instructions and handles all the communication with the computer’s operating system. Java is therefore portable because any Java program can run on any computer with the Java operating environment. Sun Microsystems provides a free development and deployment environment called Java Standard Development Kit (SDK). See Figure 2.3. Figure 2.3 The Java SDK The Java compiler, debugger, and development tools such as the Applet Viewer can be used to develop many different applications for a wide range of operating systems. The Java Runtime Environment is the minimal set of application programming interfaces

PAGE 21

11 (APIs) to ensure that the application runs as expected when installed at its final destination. WebPlan uses version 1.3.1 of the SDK. The SDK also provides users with Java documentation, or JavaDocs, that includes a detailed description for all the different built-in interfaces and classes. This documentation is also provided at the Sun’s web site (http://java.sun.com) along with tutorials and forums devoted to different Java technologies. Java Foundation Classes The Java Foundation Classes (JFC) is a group of libraries used to create Java applications with a wide range of GUI components. Swing is a graphical user interface (GUI) toolkit that Sun Microsystems developed as part of the JFC to extend the older Abstract Window Toolkit (AWT) classes. JFC originally consisted of the AWT, Accessibility API, 2D API, and Drag-and-Drop capabilities. The AWT provides basic GUI components in the Java SDK. The accessibility package provides programmers with an easy interface to include external devices (such as Braille keyboards and audible text readers) with the GUI application. The 2D API provides developers with objects that implement various painting styles, complex shapes, fonts and colors. The Drag and Drop facilities allow the user to select a GUI object and move it to another GUI object such as a frame or window. Also, the Drag and Drop API allows developers to transfer information from a Java application to a non-Java application. In WEBPLAN, the Drag and Drop classes are used to provide teachers with the simple functionality of moving task objects within a table, which looks like the notebook version of the week planner. Java Applets A Java Applet is a Java program embedded in a HTML page that runs in a web browser such as Netscape Communicator or Microsoft Internet Explorer. The browser

PAGE 22

12 serves as a container for Java Foundation GUI objects. A Java Applet can access files from the host, enabling users to use centralized information from any place having Internet accessibility. Java Applets have security restrictions to prevent client computers from being attacked by viruses. To prevent applets from becoming a virus medium there are three main limitations [HOR99, p. 593]: 1. An applet cannot access files on the local computer. 2. An applet cannot invoke any other program on the local computer. 3. An applet cannot communicate with any computer other than the computer from which the HTML page containing the applet was originally downloaded. There are two different books, Beginning Java 2 by Ivor Horton and Java: How To Program Third Edition by Harvey M. Deitel and Paul J. Deitel, that were used as Java language references for this thesis. Java Servlets A servlet is a server extension that enhances the server’s functionality to create dynamic web pages. The single most important reason servlets are powerful is that they provide the ability to create web applications on the Internet. Using servlets, applications can be created that provide user-specific information (e.g., bank account information). Servlets can take the place of other server extensions such as Common Gateway Interface (CGI), Perl, and server extension APIs. There are several major advantages that servlets have over using these other methods: 1. Portability – Servlets are written in Java and so they can be used on any operating system and on server. 2. Power – They can be programmed to use any of Java’s APIs and J2EE Platform which includes Enterprise JavaBeans (EJB), distributed transactions (JTS), standardized messaging (JMS), and advanced database access (JDBC).

PAGE 23

13 3. Efficiency and Endurance – When a server loads a servlet, it remains in its memory as a single object instance instead of spawning new processes like CGI does. 4. Safety – Servlets inherit the safety from the Java language such as Java’s automatic garbage collection, invalid pointer references and memory leaks. The book Java Servlet Programming by Jason Hunter and William Crawford was used as a reference for this thesis. The code examples and the chapter on Applet-Servlet Communication proved to be especially helpful. Tomcat Tomcat is a multi-platform server that supports Java Servlet and Java Server Pages technologies. Managed by the Apache Jakarta Project, Tomcat is an open source application released under the Apache Software License. Tomcat was built using the Java platform and therefore contains many of the advantages of Java. WebPlan and TWEB were developed using 4.0.1 version of Tomcat, which support Servlet 2.3 specifications. The complete documentation and installation guide can be found on the Apache Jakarta Project website http://jakarta.apache.org/tomcat . The next chapter, Chapter 3, focuses on the design process concepts of both WebPlan and TWEB. It gives an overview of the workflow of a schoolteacher.

PAGE 24

CHAPTER 3 DESIGN REVIEW This chapter begins with a discussion of the different design process concepts that were used to develop both WebPlan and TWEB. Next, a description of the workflow of a target schoolteacher and the data analysis that was done from that interview is presented. Design Concepts and Principles “Develop a precise description of our user and what he wishes to accomplish” [COOP99, p.123] is a simple design concept discussed in the book The Inmates Are Running the Asylum by Alan Cooper. To develop a “precise description” of an end user the book suggests creating a user “persona” to represent a real user. “Personas allow us to see the scope and nature of the design problem. They make it clear exactly what the user’s goals are, so we can see what the product must do – and can get away with not doing” [COOP99, p. 130 ]. To have an effective persona for the design process several characteristics must be given to the persona: “Giving the persona a name is one of the most important parts of successfully defining one. A persona without a name is simply not useful. Without a name, a persona will never be a concrete individual in anyone’s mind” [COOP99, p. 128]. This forces software designers and developers to make design decision based on a concrete person. This also prevents developers from being side tracked and developing for uncommon cases. Giving the persona a realistic skill level is another important characteristic of the persona. Since there is a wide spectrum of teachers ranging in skill level and experience, this persona must represent eighty percent of the common teacher. “The precisely-defined persona tells us exactly what the user’s level of computer skill will be, so we don’t get lost in wondering whether to design for amateurs or experts” [COOP99, p. 131]. This prevents a designer from complicating the software design by adding features that only a few teachers would understand how to use. 14

PAGE 25

15 Since users use products to accomplish personal goals, the persona must have well-defined goals. “Goals are not the same thing as tasks. A goal is an end condition, whereas a task is an intermediate process needed to achieve the goal” [COOP99, p. 150]. Goals and personas are the two key elements to the design process; without one the other is useless. Using the concept of a persona in design helps developers incorporate meaningful input from the user. The use of goals helps the developer become “goal-directed” by focusing on the goals of the user. In the design process I also used several design principles from the book GUI Bloopers Don’ts and Do’s for Software Developers and Web Designers by Jeff Johnson. Important principles described in this book include the following: Derive a clear description of the common user, understand the workflow of the user, and focus the product to meet the needs of the user, which for this thesis are schoolteachers. The book provides corresponding questions to these principles that helped me obtain useful information from the end-user. The book also describes “bloopers” common to graphical user interfaces and how to avoid them. The book’s first principle is to “Focus on the users and their tasks, not the technology” [JOH00, p. 10], which is described to be “the mother of all principles, the principle from which all other user interface design principles are derived” [JOH00, p. 10]. To understand this principle the book suggests answering the following questions [JOH00, p. 11]: 1. Who are the intended customers? Who are the intended users? Are the customers and the users the same people? 2. What problems will it help users solve? 3. What do they like and dislike about the way they work now? 4. What are the skills and knowledge of the intended users?

PAGE 26

16 5. How do users conceptualize and work with the data in their task domain? 6. What are the intended users’ preferred ways of working? How will the product or service fit into those ways? Since these are broad questions, the book also recommends doing a “task analysis.” “The goal of a task analysis is to develop a thorough understanding of the activities the product or service is intended to support” [JOH00, p. 15]. To conduct a task analysis the book recommends, “the development team arranges to talk with and observe people who either will eventually be users or whose demographics match the profiles of the intended users” [JOH00, p. 15]. The following list of questions is useful to obtain a good task analysis [JOH00, p. 17]: 1. What tasks does the person do that are relevant to the application’s target task area? 2. Which tasks are common, and which ones are rare? 3. Which tasks are most important, and which ones are least important? 4. What are the steps of each task? 5. What is the product of each task? 6. Where does the information for each task come from, and how is the information that results from each task used? 7. What tools are used to do each task? 8. What problems, if any, do people have performing each task? What sorts of mistakes are common? What causes these problems and mistakes? 9. What terminology do people who do these tasks use? 10. How are different tasks related? 11. What communication with other people is required to do the tasks? The second step used in the design process was to consider function first and presentation later, which is also the second design principle discussed in the book. For

PAGE 27

17 this principle the following general groups of questions should be answered [JOH00, p. 24]: 1. What concepts will the product or service expose the users? Are they concepts that users will recognize from the task domain, or are they new concepts? If new, can they be presented as extensions of familiar concepts, or are they completely foreign concepts from the domain of computer science or electrical engineering? 2. What data will users create, view, or manipulate with the software? What information will users extract from the data? How? What steps will they use? Where will data that users bring into the product or service come from, and where will data produced in the product or service be used? 3. What options, choices, settings, and controls will the application provide? This is not a question about how to represent controls (e.g., as radio buttons, type-in fields, menus, sliders); it is about their function, purpose, and role in the product or service (e.g., day of the week, dollar amount, email address, volume level). It is about what options the software provides and what the possible values of those options are. To help answer these questions the book suggests developing a “conceptual model.” The conceptual model describes, “the data the users manipulates, the manner in which that data is divided into chunks, and the nature of the manipulations that users perform on the data” [JOH00, p. 25]. There are two key concepts in this book: perform a useful task analysis and create an accurate conceptual model. The task analysis helps define the daily workflow of the targeted user. The conceptual model is used to obtain the data that the user manipulates. The book also reemphasizes the need for these tasks to accomplish the goals of the user. Interview Mrs. Jeanne Wright is a third grade teacher in Martha Manson Elementary School in Gainesville, Florida, and is considered to be a primary target user. She has a basic knowledge of computers and uses the Internet as a form of communication with her students and their parents.

PAGE 28

18 During the interview I asked her to describe her daily tasks and the data she manipulated. The next section summarizes the findings from the interview and was very useful in understanding the teacher’s goals. Teacher Routine and Data Manipulation Description The daily schedule is a description of the activities that should be performed every day at particular time slots. Every schoolteacher at the beginning of the school year creates this schedule. For example, elementary schoolteachers’ activities are labeled Math, Reading, Language Arts (L.A.), Spelling, Music, Science, Writing, Physical Education (PE), Art, and Spanish. Figure 3.1 illustrates an example of a daily schedule. Figure 3.1 Daily Schedule

PAGE 29

19 Teachers may veer from their daily schedule for holidays, field trips, and other random activities that occur throughout the year. For each of the activities, a lesson plan is created to identify the learning objective. A lesson plan is a document containing the learning objectives, teaching methods, materials, and student evaluation method used. Each lesson plan also contains a detailed list of activities such as reading assignments, lesson assignments, and homework assignments. These detailed lesson plan activities are recorded in the weekly planner, which are the short-term tool teachers use to plan their activities for a particular week. There are also miscellaneous items such as notes and spelling words that are also recorded in the weekly planner. Teachers make their lesson plans and organize their weekly planners a least a week ahead of time. This provides enough time for a teacher with a website to update their web pages with the current information. During the day, they use the weekly planner to see what activity is coming up and, if necessary, make adjustments to their current schedule. These minor adjustments are not crucial and are often not updated on the teacher’s website due to time constraints. From the interview with Mrs. Wright, I was able to create the Data Relation Diagram shown in Figure 3.2. Her main goals are to maintain a brief description of her lesson plans in to her weekly planner from home and work and to update her website with the same accurate information. She accomplishes these goals by performing the following tasks: creating lesson plans for her scheduled activities a week prior to teaching them, writing a brief description of those lesson plans in their corresponding time slots in the weekly planner, and updating her website on a weekly basis [WRI01]. The data that is manipulated and relevant to WebPlan and TWEB are the brief summaries of the lesson

PAGE 30

20 plan, the activities, time-slots, and miscellaneous information also found in the weekly planner. This information proved to be vital in designing the database implementation, functionality, and graphical user interfaces of WebPlan and TWEB. Activity HW Assign m e nt Lesson A ssign m e n t W e b S ite Weekly Planner HW Assign m e nt Lesson A ssign m e n t Lesson P lan Activity Activities Day o f w eek Ti m e Figure 3.2 Data Relation Diagram Chapter 4 focuses on the bottom tier of both WebPlan and TWEB. It gives a technical overview of the database management system, Cloudscape, and also describes the implementation of the database for both systems.

PAGE 31

CHAPTER 4 DATABASE DESIGN AND USAGE This chapter provides an overview of the Cloudscape Database and it’s various features. This chapter further discusses the database schema that is used by WebPlan and TWEB. Cloudscape Database Cloudscape 3.6 is the database management system that resides on the server and is utilized by WebPlan and TWEB. Sun Microsystems distributes Cloudscape free, along with the Java 2 Enterprise Edition 1.3 (J2EE) software bundle. Cloudscape is a 100% pure Java class library, so it, therefore, has many of the advantages of Java, such as platform independence, ease of configuration, and ease of installation. The following sections describe some of Cloudscape’s features and how these were utilized in the prototype. Also, some discussion is devoted to how Cloudscape could be used to enhance the prototype. Embedded Database Cloudscape is embeddable system because its database engine software runs within the same Java virtual machine (JVM) as the application. It is also quite easy to embed Cloudscape inside a server framework or a Java-based web server. Figure 4.1 shows Cloudscape embedded in a Java server. In this scenario, clients access the database via HTTP (Hypertext Transmission Protocol) requests that are directed to Java servlets. 21

PAGE 32

22 Figure 4.1 Cloudscape Embedded System Even though Cloudscape can be embedded within other systems, it must use the JDBC (Java Database Connectivity) API to communicate with the database. Using the industry standard JDBC APIs improves an application’s portable. One of the main benefits afforded by JDBC is the independence of the database from the application code, thereby allowing the application to run against any other JDBC compliant vendor database. Although this feature is not used in the prototype, it has two benefits: it makes a database-driven application appear as a single application, and it removes the need for the database to be managed by a different database management system. Java Database Connectivity Driver and Servlet Usage Cloudscape provides three JDBC drivers: the embedded driver, the RmiJdbc driver, and a WebLogic driver. All three drivers use pure Java on the client side and can connect directly to the database. The embedded driver is used when Cloudscape is running under the same JVM as the application. The WebLogic driver is used when the application is running on the WebLogic application server.

PAGE 33

23 Cloudscape’s RmiJdbc driver, which is named Cloudscape 3.6 JDBC Driver, is the driver used in the prototype WebPlan and TWEB systems. The prototype uses two different servlets called WebPlanServlet and DisplayServlet to access the database’s information. The driver serves as a communication port between the servlet and the database. The prototype’s servlet, WebPlanServlet, creates a connection to the database by first setting the property object called props with the following information: connection.driver = COM.cloudscape.core.RmiJdbcDriver connection.url = jdbc:cloudscape:rmi:thesis;create=true user=user password=passwd. The connection.driver information in the props object is then used to load the driver: Class.forName(props.getProperty("connection.driver")).newInstance();. Finally, Java’s DriverManager object uses the Universal Resource Locator (URL) from these properties to obtain a connection: Connection con = DriverManager.getConnection(props.getProperty("connection.url"), props);. Using this database connection, WebPlanServlet receives HTTP request objects, called HttpServletRequest, used for retrieving or saving data. HttpServletRequest objects contain different parameters depending on the request, but all contain an action parameter. This action parameter informs the servlet of the type of query that needs to be executed against the database. Structured Query Language Cloudscape also implements the SQL92E standards plus object extensions [WYA01, p.3]. The use of this standard across different database management systems enables programmers to switch from one to another without incurring excessive time and

PAGE 34

24 expense burdens. It also enables users to write SQL statements for a database application program that can access data stored in more then one DBMS. Once a connection is established an SQL command can be used to retrieve or save data. Figure 4.2 illustrates how a SQL command is run against the database. Figure 4.2 Sample SQL Query Execution Code The Statement object is created to send the SQL command to the database. The executeQuery function of the Statement object executes the SQL command in the database and returns a set of records contained in the ResultSet object. The ResultSet is then used to access the records of data returned by the database. There are four types of SQL commands used in the prototype: Insert, Select, Update, and Delete. The Insert command is used to add a single record to a table. The Select command is used to retrieve one or more records that meet the criteria specified by the command statement. Update is used to modify values of fields for one or more selected records. And finally, the Delete command removes records from a table. All the SQL commands follow different formats. The formats help determine which records or data is being affected. The following code segments are examples of each of these SQL commands. INSERT INTO Planner (TeacherID,TaskDate,SubjectID,Text,List_Order,TypeID) VALUES (1, pdDate, piSubjectID, pstrText, piListOrder, piTypeID) SELECT TaskType, id FROM TaskType WHERE Active = true

PAGE 35

25 UPDATE Planner SET TaskDate = pdDate , SubjectID = piSubjectID, List_Order = piListOrder , Text = pstrText WHERE TaskDate = pdDate , SubjectID = piSubjectID , List_Order = piListOrder DELETE FROM Planner WHERE TaskDate = pdDate AND SubjectID = piSubjectID AND List_Order = piListOrder AND TypeID = piTypeID This insert statement adds a record to the Planner table with the values specified in the values parenthesis. The select statement retrieves the TaskType and the id field values for all the records in the TaskType table that are active. The update statement updates the Planner record with the values specified in the set clause of the statement. The record that is updated must meet the criteria specified in the where clause of the update statement. Finally, the delete statement will delete the record in the Planner table that meets the criteria in the where clause. Multiple Connectivity Whether or not the Cloudscape database is embedded, it supports multiple simultaneous connections as well as access from multiple application threads. It has transaction support (commit and rollback), it supports multiple connections with transactional isolation, and it provides crash recovery. Also, multiple threads are allowed to share the same connection. These features are important for this prototype because multiple servlets can access the database simultaneously. Since the database contains the information about multiple teachers, it is common for simultaneous database accesses to occur. Other Features Cloudscape also provides an add-in called CloudConnector that provides high-performance secure client/server JDBC connectivity. Although security is not implemented in the prototype, this feature could be included for privacy enforcement.

PAGE 36

26 Stored Procedures is also a feature that could be implemented if there was a need for performance enhancements. For example if users spent five minutes waiting for the results of a query for the static query, a stored procedure could improve the output time of the query because it is precompiled. In general, Cloudscape meets the database requirements and provides addition features that could be used to enhance the system. Database Schema Five tables store the information used by teachers to maintain their web site information and their weekly planners. The design process as well as the teacher interviews helped identify the necessary data that had to be stored in the database and used by WebPlan and TWEB. In create tables in the Cloudscape database, the table creation command is executed using the appropriate field information for each table. For example, to represent a teacher’s school information, the School table was defined using the table creation command shown in Figure 4.3. CREATE TABLE School ( Name varchar(100), Description varchar(100), Address varchar(100), Telephone varchar(24), ID int default autoincrement constraint school_pk primary key); Figure 4.3 Create Table Command Sample The School field descriptions are as follows: Name – Name of the school Description – Description of the school Address – Address of the school Telephone – Telephone of the school ID – A unique ID that identifies this particular school in this table

PAGE 37

27 A teacher’s personal information, such as full name and email address, was represented in the Teacher table. The Teacher table contained the following fields: Name – Name of the teacher Grade-Level – The grade level the teacher teaches Email – Current email address of the teacher School_ID – ID that corresponds with the particular school information stored in the School table ID – unique id that represents each teacher in this table The various subjects that a particular teacher teaches are stored in the Subject table. Subjects such as Science, Math, and Art are displayed in the column headers of the weekly planner. This table contains the following fields: Name – Name of the subject Description – A description of the subject Sub_Order – A number representing the order in which the teacher would like to view the subjects in WEBPLAN Teacher_ID – An ID number which corresponds with the Teacher table’s ID field ID – A number that uniquely identifies this subject The Task table contains the type of activities that teachers schedule during the week. Common entries include homework assignments, class work assignments, quizzes, exams, reading assignments, and more. In this table there are three fields called TaskType, Active, and ID. TaskType is contains the name of the task, Active shows if the current task is active or not, and the ID uniquely identifies each task. The Planner table combines the School, Teacher, Subject, and Task tables to represent information pertaining to the description of a particular task that is done on a particular day for a particular subject. This table summarizes all the information that is

PAGE 38

28 contained in the weekly planner. The fields and description for these tables are the following: TeacherID – Corresponds with the Teacher table’s ID, which identifies a teacher TaskDate – Represents the date in which a particular task occurs SubjectID – Represents the subject in which a particular task is part Text – Describes the details of the task List_Order – Specifies the order that the tasks are listed for a particular date and subject TypeID – Defines the type of task This database schema consisting of five tables is the bottom layer of the prototype. It stores all the information used in a lesson plan and some information that is displayed on a teacher’s web site. The servlets (WebPlanServlet and DisplayServlet) are the middle layer or business layer of the prototype. They receive requests from either the Java Applet or the web pages and process them using Cloudscape’s JDBC driver to access the database. The next chapter, Chapter 5, discuss the graphical user interface WebPlan.

PAGE 39

CHAPTER 5 WEBPLAN USER OVERVIEW This chapter provides a high-level overview of WebPlan. This overview includes a discussion about the different components of the layout and the functionality that is available to the user. Figure 5.1 shows the graphical user interface of WebPlan. Figure 5.1 WebPlan Planner The layout is designed to resemble a notebook weekly planner. Just like the notebook weekly planner the columns, except for the first, represent the subjects that are taught by the schoolteacher. Currently there are four subjects that are hard coded in the 29

PAGE 40

30 database: Reading, Writing, Science, and Math. The first column is labeled Notes and is used by schoolteachers to enter any general activities or information. Each row in the planner represents a calendar day. The date is displayed in the header of each row in the Notes column. Each Subject and Day grid can contain any number of activities. There are several differences between WebPlan and the notebook planner. For example, if more than four activities per Subject and Day exist then the user must use the scroll bar in the grid to view the rest of the activities. Likewise, if there are more than two calendar days being viewed in the planner the user must use the planner’s scroll bar to view the remaining days. Activities Schoolteachers fill their planner with activities representing a lesson plan. In WebPlan there are eight hard-coded activities in the database: General, Project, HW (homework), CW (class work), Read Assignment, Spelling Words, Quiz, and Exams. The Teacher’s Toolbar lists all of these activities. To place a new activity in the planner the user selects the activity from the Teacher’s Toolbar and drags it to the proper Subject and Day grid in the planner. The user then double clicks on the new activity to fill it with information. Any activity within the planner can also be dragged from its current location to any other Subject and Day grid, or it can be relocated within the same grid in a different position. A schoolteacher can also copy, cut, and paste information from one activity into another by simply highlighted the text and using the keyboard commands CTRL-C for copy, CTRL-X for cut, and CTRL-V for paste. Ideally, these commands could also be included as button commands.

PAGE 41

31 Button Commands There are three button commands on the top left of WebPlan: Open, Save, and Delete, represented by the opened folder icon, floppy disk icon, and the garbage can icons, respectively. Figure 5.2 Date Range Dialog Open Command The user can click on the open button any time. The Date Dialog, as shown in Figure 5.2, then appears where the user can either input a date range and hit OK or press the Cancel button. If the user enters a date range, the Begin Date and End Date data must follow the format “yyyy-mm-dd”. The planner then appears with the correct information for the specified date range. The date range selected is also displayed on the top right corner of the main window next to the appropriate label, which will be either Begin Date or End Date. Save Command The save button can be clicked at anytime to save the changes that have been made since the last save. If the user does not press the save button, all the changes are lost. When switching from different views of the planner, the user must save their work. The various aspects of Views are discussed in the next section.

PAGE 42

32 Delete Command To delete an activity from the planner the user first must select an activity. To know that an activity has been selected there is a blue background that appears on the text section of the activity, as shown in Figure 5.3 below. Figure 5.3 Selected Activity Once an activity has been selected, the delete button is enabled and the user can click on it to delete the activity. Then, to permanently remove the activity from the database, the user saves the changes by clicking on the save button. Planner Views WebPlan provides four different views of the data stored in the database. To get the desired view, the date, subject filter, and toolbox-type filter can be used in combination or separately. The subject filter is a list of all the subjects that are stored in the database. They include Notes, Reading, Writing, Science, and Math. The list also contains the option All Subjects, which allows all the subjects to be displayed at the same time. Figure 5.4 is an illustration of a user selecting the writing subject. WebPlan, in this case, displays all the activity types for the writing subject on the specified days.

PAGE 43

33 Figure 5.4 Subjects Filter View The toolboxfilter lists all types of activities that are contained in the database plus the All Types option. This option is not stored in the database but allows the user to view all available types of activities. The user simply selects a type to filter the activities, which results in only showing that type of activity. For example, in Figure 5.5 WebPlan is only displaying the HW activity type for all subjects that fall into the specified date range. This is an enhancement to the notebook weekly planner because teachers can view specific types of activities.

PAGE 44

34 Figure 5.5 Types Filter View Figure 5.6 Subjects and Types Filter View

PAGE 45

35 A user can use both the subjects and types filter to view a single activity for a single subject. For example, in Figure 5.6 WebPlan displays only Read Assignment activities for the subject Writing. Specifying a range of dates or a single date in the date dialog can further filter the data. Figure 5.6 illustrates a range of dates in addition to using the subject filter and the toolbox type filters. WebPlan can also show a single date’s information by entering the same date in the Begin Date and End Date fields of the date dialog. Figure 5.7 is an example of viewing a specific date’s activities for a single subject. Figure 5.7 Single Date Filter WebPlan provides basic features such as the ability to create, delete, and save all the scheduled activities. A teacher can use two methods to move information around the planner. The first method is to select an activity from one location and drag it to any

PAGE 46

36 other location on the planner. The second method is to copy and paste the content of one activity into another. There are also several data filtering tools such as the Subjects and Toolbox-Type filters that help the user narrow the focus of the data they wish to display. Finally, there is the Date dialog that can be used to narrow the date range from a single day to any number of days. The next chapter discusses the implementation details of WebPlan.

PAGE 47

CHAPTER 6 WEBPLAN IMPLEMENTATION DETAILS This chapter discusses all the components of WebPlan, their functionality, and how they communicate. WebPlan is composed of several Java components contained in a Java Applet as seen in Figure 6.1. There are three main user components in the applet: the Master Table, the Teacher’s ToolBar, and the Toolbar. Figure 6.1 WebPlan Components Diagram In Figure 6.1, it should be noted that the applet is contained in the Microsoft Internet Explorer browser. To start the applet a user visits the URL 37

PAGE 48

38 http://localhost:8080/Lumari/WEBPLAN.html . The browser then communicates with the server to retrieve the html page containing the HTML code shown in Figure 6.2. Figure 6.2 HTML Code Next, the browser processes the HTML code by interpreting the corresponding tags and the information between them. For example, the browser window’s title is “Teacher’s Planner.” This information is retrieved using the tags and . The HTML Header that is marked in Figure 6.1 is displayed by using the two

tags. Finally, the applet is included in the browser using the tags. To include the applet, the file WEBPLAN.class and other supporting java files are retrieved from the server and executed on the client. The next sections discuss the components that are initialized and used by the applet. Data Handler One of the first components that the applet creates is called the DataHandler. This component’s main purpose is to create a connection to the servlet running on the server to send and retrieve data.

PAGE 49

39 Figure 6.3 Data Connection Code Sample Figure 6.3 shows sample Java code demonstrating how the DataHandler retrieves information from the servlet on the server. Setting the location of the servlet initializes the URL object. In this code sample, three parameters are sent to the servlet: action, BeginDate, and EndDate. As discussed in Chapter 3, the servlet uses the action parameter to determine which query needs to be run. Using the HttpMessage object called msg, the request is sent to the servlet using the sendGetMessage procedure. After completion, this call returns an input stream that is used to read the results into a Vector object. The Vector class in Java is an array of objects whose size can change by adding and removing objects. This vector contains the format discussed in the MasterTableHandler section. The DataHandler manages the data requests of two main components: the Master Table and the Teacher Toolbar. Figure 6.4 lists the servlet procedure calls available to these components.

PAGE 50

40 Figure 6.4 Data Handler Servlet Procedure Calls The DataHandler can retrieve planner data by using one to four of these procedures, depending on the filter values set by the user. For example, if the user specifies that they want to view all activity types for all subjects during a range of dates, the Master Table uses the getAllDataDateRange procedure to retrieve this information from the DataHandler. The other procedures are used in a similar manner. The DataHandler is also used to save any changes to the planner such as activity deletions, additions, and/or modifications. Although the DataHandler manages these changes, they are not saved to the database until the user clicks on the save button. The Teacher’s Toolbar retrieves its information by calling the getTeachersTools procedure. The Teacher’s Toolbar component retrieves its information only once, during initialization. Master Table The Master Table in Figure 6.1 is the central planner component of WebPlan. The Master Table was created by extending different Java classes and then layering the new components to create the functionality provided by WebPlan. Figure 6.5 displays the different components used to create the planner. A two-dimensional table named JTable is the Java base component used to create two of the components: DNDMasterTable and DNDTable. These two compose the base (0) and third layer in the diagram in Figure 6.5. JTable has been extended to handle the

PAGE 51

41 Drag-and-Drop functionality. The term Drag-and-Drop refers to a gesture by the user to transfer information between two different components. The Master Table uses this feature to enter different activities that are being dragged from the Teacher’s Toolbar then dropped in this component. JTable also provides the ability to render and edit cells of the table using different components. Java Swing currently provides renderers and editors for Boolean values (i.e., JcheckBox for display and editing), ImageIcon values, Number values, and Object values (i.e., JtextField for editing) [ECK98, p.525 ], but programmers are also free to create their own. Figure 6.5 Master Table Component Layers

PAGE 52

42 To define a table’s render and editor it is necessary to implement both the TableCellRenderer and TableCellEditor interfaces. Only one procedure for each interface must be defined. The TableCellRenderer’s procedure is the following: public abstract Component getTableCellRendererComponent(Jtable table, Object value, Boolean isSelected, Boolean hasFocus, int row, int column). This procedure takes a value, which should be displayed in the specified row and column, and returns a component capable of drawing the value in a table cell. The TableCellEditor’s procedure is the following: public Component getTableCellEditorComponent (Jtable table, Object value, Boolean isSelected, int row, int column). This also takes a value, which should be edited, and returns a component capable of editing the value. In Figure 6.5 there are two sets of renderers and editors for the Master Table, MasterTableCellRenderer and MasterTableCellEditor, and MultiLineCellRenderer and TextAreaEditor. MasterTableCellRenderer and MasterTableCellEditor both return a DroppableJScrollPane with a DNDTable. The DroppableJScrollPane component provides the main scrollbar to the Master Table allowing the user to scroll down to see all the dates in their query. It was also extended to include the Drag and Drop functionality allowing the user to drop activities in the Master Table. The second set of renderers and editors in layer four of Figure 6.5 both return different components. The TextAreaEditor returns a JTextArea component to edit the text value in an individual activity. It provides the copy, cut, and paste actions that are available in the individual activities. The MultiLineCellRenderer returns a JScrollPane

PAGE 53

43 with a JTextArea. JScrollPane provides the scroll bar if an individual activity’s text is too long, and the JTextArea is used to display the text of individual activities. All of these layered components provide the functionality necessary to use the planner in WebPlan. MasterTableHandler The purpose of MasterTableHandler is to handle requests by the different filters and manage the data that is displayed by the Master Table. Components of type DNDMasterTable have a data source referred to as a table model. The MasterTableHandler updates the table model when the user changes any of the filters. The setModel procedure of the DNDMasterTable class is called to set the model using the one returned by the DataHandler as an input value. The DNDMasterTable uses the DNDTableModel class that extends the DefaultTableModel class. Figure 6.6 Master Table Handler’s Data Organization

PAGE 54

44 The table model’s vector is a two dimensional array. Figure 6.6 illustrates the format of this vector for the Master Table. The Date Range vector has an entry for each day between the Begin Date and End Date, inclusive. For each of these days there is another vector representing the subjects that are displayed in WebPlan. Each of the subjects contains another table model that is used by the DNDTable component. In this table model there is another array containing the number of activities for that subject and day. Each of these activities is pointing to a component called a Task. A Task contains all the information about an activity such as the type, the subject, the day it was scheduled, the order in which it was scheduled within a subject and day, and the text that the teacher entered. In Figure 6.6 the Date Range and the Subject vectors provide the data required by the DNDMasterTable. The Activity Rows and Task vectors provide the data required by the DNDTable for each cell in the DNDMasterTable. ToolBar The component highlighted in green in Figure 6.1 is called the “Toolbar.” The Toolbar contains the Open, Save, and Delete buttons, the Type and Subjects filters, and the Date range labels. The Toolbar class is an extension of the Java JToolBar class. JToolBar provides a component that is used to display actions or controls. It can also include a separator between the actions or controls. The ToolBar class in WebPlan added three different components to the Toolbar: buttons, combo boxes, and labels. The Action class in Java is a component that is used to represent buttons. The Java JComboBox class provides a component that represents the Type and Subject filters. Date range labels were created using the Java JLabel class. The three main procedures in the Toolbar class that added these components to the Toolbar are listed in Figure 6.7.

PAGE 55

45 Figure 6.7 Toolbar Class Procedures ToolbarHandler The ToolbarHandler class is used to initialize the Toolbar component. It creates and initializes the action buttons and the combo boxes. Since the user can filter the date ranges, the date range labels are created and managed by the MasterHandler. The ToolbarHandler request the data range labels on a JPanel container from the MasterHandler to display it in WebPlan. A JPanel is a Java component that acts as a container of components. The ToolbarHandler makes the necessary calls, and then inserts these components in the correct order in the Toolbar. Tool Tips, text that appears when the mouse is set over the buttons, are also initialized and set by the ToolbarHandler. The Toolbar Handler links components that need to be notified of event changes to the buttons and the combo boxes. The communication among components is discussed later in this chapter. Teacher ToolBar The Teacher ToolBar component in Figure 6.1 is a list of activities that can be added to the planner. There are eight types of activities: General, Project, HW, CW, Read Assignment, Spelling Words, Quiz, and Exams. The Teacher Toolbar is also composed of several components layered on top of each other.

PAGE 56

46 Figure 6.8 Teacher ToolBar Component Diagram The Teacher ToolBar Component diagram in Figure 6.8 shows the component layers. It uses the same components used to represent each cell in the Master Table. The DNDTable was modified to distinguish between the drag gesture from within a Master Table’s cell and the Teacher’s ToolBar. The DNDTable uses this knowledge to copy instead of removing any activity from the Teacher ToolBar list when dragging and dropping from the Teacher ToolBar to the Master Table. When dragging and dropping activities among cells in the Master Table, the DNDTable removes the activity from the source cell and adds the activity to the destination cell. Communication Among Components The components in WebPlan either handle notifications from other components, or there is a separate handler that does this work. The Master Table receives two different user requests, one to insert an activity into a specified cell by using the drag and drop feature and another to edit a current activity’s content. There are three different ways an activity can be dragged and dropped in the Master Table and added to the cell’s DNDTable model:

PAGE 57

47 1. If the activity being dropped is over any part of the DroppableJScrollPane component in Figure 6.9, it calls the DNDTable add procedure with the new activity to add the activity. 2. If the activity being dropped is over another activity in the cell and the cell has focus, then the DNDTable adds the new activity. Focus means that the user last clicked somewhere in that cell. 3. If the activity being dropped is over another activity in the cell and the cell does not have focus, then the DNDMasterTable adds the activity to the cell’s DNDTable model directly. To edit an activity the user simply double clicks on the activity and the cell’s TextAreaEditor component in Figure 6.9 is initialized with the task’s information. The TextAreaEditor is continuously notified when changes have occurred to the text, such as if any text has been inserted and if any text has been deleted. Using this notification, the task is updated every time. Figure 6.9 Master Table Components

PAGE 58

48 The ToolBar in Figure 6.10 receives four types of user input requests: when the open, save, or delete button is clicked and when different selection is picked from the Type and Subject filters. These user inputs are referred to as actions. Figure 6.10 shows the three components in the ActionListener’s vector that are notified when any of these actions are performed on the ToolBar components. Figure 6.10 Action Listeners When an action is performed on a component in the ToolBar, the actionPerformed method is called with the action type in each of the ActionListeners. The MasterTableHandler, OpenButListener, and the DNDTable handle only the action types listed under each in Figure 6.10. The MasterTableHandler handles the save request and the different filter requests. The OpenButListener handles the open request and the DNDTable handles the delete request.

PAGE 59

49 Figure 6.11 Delete Button Operation Figure 6.11 describes how the delete button is enabled when an activity is selected in a particular cell of the Master Table. The ToolBarHandler creates a new TableRowSelectionListener component for every DNDTable in the Master Table and then adds this component to the DNDTable listener by calling the addListSelectionListener method of the DNDTable. This listener is notified when a list’s selection value changes. Each TableRowSelectionListener component is then modified to notify the Toolbar of these selection changes by adding the Toolbar to its PropertyChangeSupport component. The PropertyChangeSupport component manages a set of components that need to be notified of a property change. The propertyChange method is called in the Toolbar with the PropertyChangeEvent component as the input. So, when an activity is selected the TableRowSelectionListener is notified first and it uses its PropertyChangeSupport to notify the Toolbar of the change. Currently, only the enable property event is being sent to the Toolbar.

PAGE 60

50 BorderLayout Manager To provide an easier method to determine the exact size and position of every component, Java Swing provides the following six layout managers: 1. FlowLayout – Places components sequentially from left to right. 2. BorderLayout – Places components in five different areas: North, South, East, West, and Center. 3. GridLayout – Places components into a specified row and column. 4. BoxLayout – Places components starting from left to right or top to bottom. 5. CardLayout – Places components like a deck of cards. 6. GridBagLayout – Places components similar to GridLayout except that components can vary in size and can be added in any order. WebPlan uses the BorderLayout manager to position the three main components: the Master Table, the Teacher’s Toolbar, and the Toolbar. First, the components are added to their individual panels. The Teacher’s Toolbar panel is sized to be 150 pixels wide by 500 pixels long. The Master Table panel is sized to be 750 pixels wide by 500 pixels long. Then, the main panel is created and its layout manager is initialized to be a new BorderLayout manager. The Toolbar panel is added to the north section. The Teacher’s Toolbar panel is added to the west section and the Master Table’s panel is added to the center. At this point all the components have been initialized and the main panel is added to the browser display. This chapter discussed the components, handlers, and how they interact to provide the functionality of WebPlan. The next chapter covers the high level overview and implementation details of TWEB.

PAGE 61

CHAPTER 7 TWEB USER OVERVIEW AND IMPLEMENTATION DETAILS This chapter discusses the functionality of the graphical user interface of TWEB and some of TWEB’s implementation details. A brief summary concludes this chapter. Figure 7.1 TWEB Interface for Date Range Selection TWEB’s initial interface, shown in Figure 7.1, displays several type of information. The school’s name, address, and phone number are displayed on the top right of the web site. The teacher’s name, email address, and grade level are displayed in the center of the web site. The next section instructs the user to select the date range of the information they want to view. After a date range is entered and the Display Results button is 51

PAGE 62

52 pressed, the bottom section of the web page appears and the date range fields are cleared. This bottom section displays the list of subjects for the selected date range. Figure 7.2 Writing Subject HTML Page Each subject links to a separate web page that is instantiated when the user clicks on that subject. For example, Figure 7.2 shows the Writing web page, which contains only the dates that have activities within the selected date range. Underneath each date is an activity list containing the type of activity and text describing what this activity involves. This basic website displays the latest information contained within WebPlan. It could be further enhanced to provide more functionality and control for teachers, allowing them to be able to modify the appearance of their sites. Several enhancements will be discussed further in Chapter 8.

PAGE 63

53 TWEB Implementation Details TWEB is a three-tier application. The top layer of the application, which is the initial web page, is instantiated when the user browses to the URL http://localhost:8080/lumari/DisplayServlet . The browser communicates with the server to retrieve this initial html page. The DisplayServlet servlet, which acts as the middle layer, creates the HTML page dynamically. For the example shown in Figure 7.1, the school and teacher’s information are retrieved from the WebPlan database and inserted into the HTML page before sending the HTML page back to the browser. Ideally, this prototype should have a login page so the corresponding teacher’s information would be retrieved. After the date range is selected, the subject links are created and added to the initial web page. Figure 7.3 is a sample of the code used to create the Writing subject link. Figure 7.3 Writing Subject Link Code Sample The variable sb at the start of each line in Figure 7.3 is a StringBuffer Java object that can be used to manipulate text. In this case text is being appended to make a HTML text page, with the specifics depending on the user’s input. The first line in Figure 7.3 defines the location of the servlet that returns a HTML page to the browser if the user clicks on the link. When the link is pressed the browser requests a HTML page from the DisplaySubjectServlet servlet. Lines 3 and 4 in Figure 7.3 append the date range as input parameters to the DisplaySubjectServlet servlet. Line 5 appends the subject type as an

PAGE 64

54 input parameter. The DisplaySubjectServlet servlet, using the input provided, retrieves and creates the HTML page with corresponding activity information from the database. Each subject link is created using the similar HTML text format. If a different subject link is pressed then DisplaySubjectServlet refreshes the page already opened with the new subject’s information. Conclusion For schoolteachers, the Internet is an essential new communication channel with parents and students. Schoolteacher’s sites usually provide information on current assignments, due dates, school activities, projects, extra sources of information, recommended readings, and links to other useful sites. Most of the information comes directly from their weekly planners. TWEB is a template prototype that enables teachers to display the information from their weekly planners making it available to the parents and students. The next chapter discusses enhancements to the prototype and a brief summary of WebPlan and TWEB.

PAGE 65

CHAPTER 8 EXTENSIONS AND CONCLUSION This chapter first discusses some enhancements that could be made to the prototype. This is followed by the conclusion section, which includes an overview of the key concepts covered in this thesis. Extensions One of the main enhancements that could be made to WebPlan is to improve the graphical user interface with more functionality, such as the following items: Icons to copy, cut, and paste a selected activity from one date and subject cell to another in the planner. A text search field for teachers to search their planner for key words. This search enhancement could include filter fields to reduce the number of activities considered. A format window to allow users to format the text in the activities. A right-click pop-up menu providing the same functionality that is provided in the toolbar. An activity types and subjects maintenance window to allow teachers to enter more activities and subjects. There are also new features that could be added. One such feature is a method to attach documents to an activity and provide a visual aid to the activity, such as a paper clip icon, to differentiate between activities that have a document associated with them and the ones that do not. A printing utility could also be provided which would have filters allowing teachers to print their planner with only the activities that matched the filter values. It would be useful to allow teachers to schedule reoccurring activities and 55

PAGE 66

56 not just for a single day and subject. For example, if the schoolteacher schedules a spelling quiz every Friday, then the teacher could create an activity that occurs at the same time every week. Currently, to change the appearance of a schoolteacher’s website the schoolteacher must have knowledge about HTML and Servlets. The TWEB prototype could be enhanced to become a simple web design program that connects to the WebPlan database. TWEB could have an easy user interface with the same drag and drop concepts as WebPlan. For example, in Figure 8.1 the user could insert text components, links and other web components, including activities, to their web site layout on the right-hand side of the screen. Figure 8.1 TWEB Web Design Program Interface

PAGE 67

57 TWEB would have to continue to access the database so that teachers could include activities from WebPlan on their web sites. While there are many more enhancements that would be useful to schoolteachers; the key is to keep the design simple so that the application does not become overwhelming. Conclusion Although the Internet provides a method of communication between schoolteachers and parents, schoolteachers find Internet technology complicated and cumbersome. Likewise, many teachers also find computers to be time consuming because of the learning curve that is involved. The majority of schoolteachers still use notebook planners because the available desktop planner applications are complicated and involve significant computer knowledge. The notebook planner’s major disadvantage is that changes require erasing and recopying text, which is time consuming. The goal of this thesis was to provide a simple user interface application that would allow teachers to manage their planners and web site, which replicated the design of their notebook planner. WebPlan, combined with TWEB, is a simple web application suite providing schoolteachers a method to maintain their daily planners and keep their web site up to date with the latest information. WebPlan was designed to have the same simple interface as the notebook planner so that schoolteachers would need only a minimal amount of training. Many of the computer commands, such as the drag and drop commands, are used across different computer applications, which greatly reduces the learning curve for teachers with basic computer knowledge. Another advantage of WebPlan is that schoolteachers would not have to bother with software installation since WebPlan is available through the Internet. It is therefore available from anywhere there

PAGE 68

58 is Internet access. TWEB consists of set of dynamically generated web pages that display the activities posted in the planner for a particular range of dates. It contains simple instructions and allows parents and students to have direct access to future assignments. With minor changes to the template and current teacher sites, TWEB could be incorporated into existing sites. Then, enhancements to this design can take advantage of some of the simple but powerful commands that are offered by computer technology and the Internet. WebPlan and TWEB jointly create a prototype that provides the basic functionality needed by schoolteachers to maintain their planners and websites.

PAGE 69

LIST OF REFERENCES [ACT03] Active770, Inc., “inetTeacher.com,” http:// www.inetteacher.com , Jan. 30, 2003. [COOP99] Cooper, Alan. The Inmates Are Running the Asylum . Indianapolis, Indiana: SAMS A Division of Macmillan Computer Publishing, 1999. [DEI99] Deitel, Harvey M. and Paul J. Deitel. Java: How To Program 3 rd Edition. Upper Saddle River, New Jersey: Prentice-Hall, Inc., 1999. [ECK98] Eckstein, Robert , Marc Loy and Dave Wood. Java Swing . Sebastopol, California: O’Reilly & Associates, Inc., 1998. [HOR99] Horton, Ivor. Beginning Java 2 . Birmingham, B27 9BH, UK: Wrox Press Ltd. Arden House, 1999 [HUN01] Hunter, Jason and William Crawford. Java Servlet Programming : Second Edition. Sebastopol, California: O’Reilly & Associates, 2001. [JOH00] Johnson, Jeff, Ph.D. GUI bloopers: Don’ts and Do’s for Software Developers and Web Designers . San Francisco, California: Morgan Kaufmann Publishers, 2000. [WYA01] Wyatt, Nat and Ames Carlson. Cloudscape 3.6: A Technical Overview . Oakland, California: Informix Software, Inc., 2001. [NIC03] New Intelligence, Inc., “Lesson Planner II,” http://www.newintel.com , Jan. 30, 2003. [TIS03] Teaching Idea, “Teacher Notebook Pro,” http://teachingidea.com , Jan. 30, 2003. [WRI01] Wright, Jeanne. “Welcome to Mrs. Wright’s 3 rd Grade Class,” http://www.mrswright.homestead.com , April 14, 2001. 59

PAGE 70

BIOGRAPHICAL SKETCH Lumari Folmer was born in Valencia, Venezuela, on April 11, 1975. In 1980 her family moved to Miami, Florida. She completed her high school studies at Miami Sunset Senior High School in 1993. She then attended Miami Dade Community College where she received her Associate of Arts degree in 1996. Mrs. Folmer moved to Gainesville where she received a dual bachelor’s degree in computer engineering and electrical engineering from the University of Florida in 1999. She then continued her studies at the University of Florida and pursued a Master of Engineering degree in computer science. Mrs. Folmer is currently working as a Software Developer on the Intergy System at Medical Manager Research and Development, a subsidiary of WebMD. After graduation she plans to continue working and applying her knowledge as a programmer. Her goals are to keep learning new technologies with a focus on databases and computer languages. 60