Task List Tool Exercise

Task List Tool Exercise

Task List: Software Requirements Specification

1. Introduction

  • Create a Sakai tool that can be used as an example to explain the Sakai tool development process.

2. Tool Description

  • The Task List Tool allows a user to add tasks in text form. All created tasks show up in a table like structure. A user can delete any task that he/she has created.

3. Functionality

  • Add a task
  • Delete a task (A user can only delete his/her tasks)
  • List all created tasks for a specific work site

4. Technologies

  • Use Spring's Ioc to inject needed Sakai services as well as Task Tool internal Manager and Service
  • Use JSF for Model View Controller
  • Persist data in the Sakai data source using Hibernate
    • Memory based storage and Spring JDBC storage examples are included as well

5. Design

Task List Manager

  • It abstracts data persistence
  • Iteration 2 and 3 use a simple in memory persistence model
    • Data is not saved between application server restarts
  • Iteration 4 uses a Hibernate based persistence model storing data in a database
    • Data is saved between application restarts

Task List Service

  • Aggregates Sakai services and Task List Manager
  • Uses Ioc to get a reference to services and manager implementations
    • Depends on Sakai User Directory Service to get User specific information
    • Depends on Sakai Tool Manager to get work site specific information
    • Uses Task List Manager for data access

JSF and Backing Bean

  • Provides user interface and Model View Controller functionality
  • Backing bean uses IoC to get a reference to the Task List Service implementation

Diagram

6. Source Code

https://source.sakaiproject.org/contrib/programmerscafe/tags/sakai-2.2/tasklist/

7. Screenshots

Coming Soon

8. Iterations

Iteration 3

  • In memory persistence
  • Spring IoC
  • JSF
Source Code
Screen Captures