Online Calendar - Functional Specifications
The purpose of this project is to be able to publish time based events of interest to the user as appointments in an online calendar like Google Calendar for the purpose of easier visualization. This way user will be able to take actions at the appropriate time.
For example, it is beneficial for collection specialists to be able to visualize when customer payments are due so that they can call the customer and solicit the payment at the appropriate time.
The scope of this project is limited to payments, both receivables (payments expected from custmers) and payables (payments due to suppliers).
Ideally, this project should be delivered as a module, optionally installed on top of Openbravo. The current architecture, however, does not cleanly support modules and this functionality should be packaged and delivered as a patch instead.
A side objective of the project is to identify the best way to package and deliver additional independent functionality.
- The organization and its users have adopted an online calendaring system as corporate calendar.
- In particular, this project assumes Google Calendar as corporate calendar.
- An Internet connection from the Openbravo server is available.
See Design Considerations.
- Calendar: a calendar is a logical container that groups time-based events such as appointments. Users of an online calendaring system can create calendars and share them with other users who subscribe to them.
User roles & profiles
- Financial Controller
- Collection Specialist
- Payables Manager
Business process definition
This project is related to the following business processes:
In both cases, the standard business process is not altered but it is enriched with the ability to see payment information in an online calendar. If the online calendar is then synchronized with an hand held device (like a smartphone), this feature enables mobile access to payment data to users.
Story 1: User Configuration
- Maureen Fillman, a collection specialist for Big Bazaar, needs to see when the payments for the customers of her organization are due.
- To do that, she connects to her Google Calendar account and, clicking on the Manage Calendars link, she subscribes to the calendar that where her organization publishes the payments.
- From this moment on, Maureen will be able to see the payments as events on her Google Calendar.
Story 2: Usage
- Maureen logins to her Google Calendar and navigate to the third week of May 2008
- There she can see that on Thursday, there is a payment due from business partner Sailor Inc.
- She opens the event and from there she can see:
- Amount due
- Invoice number (number of the invoice associated with the payment, if one exist)
- Contact name (name of the business partner contact associated with the invoice, if one exists)
- Contact email
- Contact phone number
- She can also see two URLs: one that allows her to drill down in the payment details and one to the business partner details.
- Maureen clicks on the URL for the payment details which direct her to Openbravo. After login, she navigates directly to the details of the payment.
Story 3: System Configuration
- Tom, the functional administrator, responsible for the configuration of Openbravo at Big Bazaar, connects to Openbravo to configures the Google Calendar connector.
- With an Admin role, he navigates to General Setup / Application / Google Calendar
- In that screen, he creates a new record for organization Main, specifying:
- Calendar name: this indicates to which calendar the information is published
- Google username and password: this indicates the user that has write access to this calendar
- Payables / Receivables / Both: this indicates which payment should be published. Tom chooses both.
- Frequency: Manual / every 15 minutes / every hour / every day.
- Tom saves and presses Test to validate the configuration and receives a message that confirms the connection.
- From this moment on, a background process will publish to the specified calendar the payables and receivables payment for organization Main and all its sub-organizations. This is done according to the specified frequency.
Functional requirements based on business processes
|1.1||Ability to define, by organization, the name of the Google Calendar to which the events are published.|
|Must have||To be planned|
|1.2||The Google password must be stored in encrypted format||Must have||To be planned|
|1.3||Ability to specify frequency of automated publication. Possible values are:
||Should have||To be planned
|1.4||Ability to test the connection to Google Calendar||Should have||To be planned|
|1.5||Ability to publish manually.||Must have||To be planned|
|1.6||Ability to view the date and time of the last successful publication for this organization.||Should have||To be planned|
|1.7||Ability to view a log of the last publication.||Nice to have||To be planned|
|1.8||Ability to choose which kind of event to publish: payables, receivables or both.||Must have||To be planned|
|2.1||A background process should automatically execute the publication process for all the organizations, according to the frequency indicated in their configuration.||Should have||To be planned.|
|2.2||The publication process should generate events for all the outstanding (i.e. not yet paid) payments in an organization and its sub-organization, respecting the organization configuration (payables, receivables or both)||Must have||To be planned.
|2.3||The background process should gracefully handle failures and update the status of the last synchronization for each organization. In particular, other areas of the application should not be affected if Google Calendar cannot be reached.||Must have||To be planned|
|3.1||A payment should be published with the following information (the bold fields are the Google event attributes:
||Must have||To be planned.|
|3.2|| Additionally, the event description should contain the following two URLs that allow users to drill into the details of the transactions within Openbravo:
||Nice to have||To be planned|
User Interface Mockups
The image below depict in wire frame format a tentative UI for the configuration screen.
Open Discussion Items
- Proxy configuration: it is possible that a network proxy is required to access Google Calendar from behind a firewall. How is the proxy configured?
- Is it possible to provide the URLs as per requirement 3.2?
- Suggestion, substitute "Google Calendar" by iCalendar is a standard (RFC 2445) for calendar data exchange. A list of products that´s support this standard in wikipedia http://en.wikipedia.org/wiki/List_of_applications_with_iCalendar_support