Home
Palm Meeting Scheduler - Santa Clara University
Contents
1. Q D O O i bs tata oO E E e E E AC ON AO NR re A we e ls T 2 amp 2 2 E i E 9 E x c o 2 le l ay 5 979 3 3 Osses 3223410 p mi cce E a Du TA A AA A A AOS EIE E g 5 E o 8 S 2 5 d E 2 b lt 85 gl 3 Ea o amp 8 a 8 JE K 5 S 2 g JE toja 2 o SIM Ea isi z B 5 E lapa 2 oo 2 lt Q 2z L W__L___ y SIE 5 gt E Do a c Sele IE hee Po ee ELE ks E o K oo Se E E ub o o E E 5 E E 3 5 n 3 E E o o 8 F E E c S E 2 amp mE z 2 v les FIR E 7 E 3 JET 000 JN el ile n n Ex A aa A e AA e n t BI PA JP A KAN L me n Q n 5 5 2 3 E o o 5 n 2 5 n co gt v 8 E el n 3 2 5 n E 3 z E a hoi i 2 A A eA o E g 2 a M e a span E E a E 2 25 e E A 3 8 E ao bn 3 g E 8 2 2 p o g v 2 7 o 2 o 5 2S g 5 amp 3 se 8 E 5 i g 5 3 l E mur E JA NS a o A A A a d 3 Er F Bor 10 N SY N 9 3 3 d e S ania occ SSS sg o s 0008 K E 9 B N Das c er eee ee ie Donna c S 2 oO 2 E E i D z 5 E p p E 5 o n i 2 S 2 S o O s A 5 E 2 8 3 Of p Edo 3 3 EI JE g A dS o o 3 2 m 2 o M RTV ARA pe CV 941 VE o E o STS O EU EXE tU PLATT Sea OU OREL PIE o B E sever iens AKK AA JE 2 off 3 5 o wv S 8 a gje 8 2 JE HE O 3 8 5 N Elg s a Oe A M Maie
2. Organizer will click Cancel Meeting Does attendee s device have SMS service Organizer s SMS Attendee AGM intercepts SMS and redirects to AAM No service will alert to Yes failed message v not generated by this application Does attendee have AGM AGP Atrea vali receive text No message and need to respond to Attendee AAM Attendee AGP Organizer by checks schedule alternate means for availability parses message as meeting invite Is attendee Yes available Does attendee wish to reschedule currently scheduled event No generates Decline message Organizer AAM generates Cancel and New Meeting SMS Messages A Attendee AGP Yes No Organizer reschedules meeting Yes Does Organize wish to reschedule meeting s the organize happy with attendee statuses Organizer AGP updates attendee list coming not coming Organizer AAM parses message as accept decline i Organizer AGM intercepts SMS and redirects to AAM Attendee AGM sends SMS message to Organizer AGM Attendee AGP Attendee AGP opens event to be generates Accept rescheduled message Attendee reschedules current event 41 System Sequence Diagram
3. D ETE db Caroline Ratajski YleonKenned Raccoon City Simon Tam Osiris Hospital Kristen Moss eae ejeg If you ever wish to modify an attendee s status merely click on the status icon just to the left of their name and modify it like in the image below Leslee Business 3 IR Declined ospital X Could not Contact 34 Delete Attendee 91818 Unknown The Attendee has not responded yet but was able to be contacted 15 Attending The Attendee has responded that they will be at the meeting Declined The Attendee has responded that they will not be at the meeting Could Not Contact There is no valid Mobile number for the attendee 16 How to Respond to a Meeting Message If you receive a message as an attendee inviting you to a meeting one of the two following dialogues will come up Agendus Meeting fi a3 Your attendance has been i requested Meeting Organizer Meeting Description Location 1 18 06 5 00 pm 6 00 pm You have no time conflicts Agendus Meeting es Your attendance has been requested Meeting Organizer Meeting Description Location 1 18 06 5 00 pm 6 00 pm You have a time conflict Description Reschedule Current Attend This will add the meeting to your schedule as well as send a message to the Organizer alerting them that you are going to attend 17 Decline This will merely send a message back to the Or
4. Passed Failed Not Implemented Relevant Failed 38 Features of the Palm Operating System The Palm Operating System is an event based operating system This means that the structure of each program basically consists of an event loop Static void AppEventLoop void UInt16 error EventType event do change timeout if you need periodic nilEvents EvtGetEvent amp event evtWaitForever if SysHandleEvent amp event if MenuHandleEvent 0 amp event amp error if AppHandleEvent amp event FrmDispatchEvent amp event while event eType appStopEvent Each view or form has its own event handler These event handlers are essentially giant switch statements for each control button textbox scrollbar etc depicting what the behavior of each should be If the event handler has fully taken care of the event then it must return true However if it has not such as in the case of directional pad movement it returns false and gets handled by the basic form controls Another feature of Palm is that there is no multitasking meaning one application runs at a time This makes communication between applications a little messier as there is no application stack This will be discussed further in a later section In addition to allowing only one program to run at a time Palm OS allows only one application to designate itself as the handler for SMS messages This was a particul
5. NULL NULL amp version NULL NULL NULL NULL NULL NULL NULL NULL if lerr Nersion 5 contains AAM launch code information if version 5 Check product license if isLicenseExpired k license mail Everything is OK send to AGM if MemPtrSetOwner cmdPBP 0 errNone switch to AGM to send SMS SysUIAppSwitch cardNo dbID sysAppLaunchCmd AAM AddSMS cmdPBP else MemPtrFree cmdPBP else AGM is in limited mode Return to AGP with a message that you need AGM goto GoBack else AGM does not have the latest version Return to AGP with a message that you need AGM goto GoBack 44 else AGM is not installed but we know AGP is because that called us Return to AGP maybe with a message that you need AGM GoBack if DmGetNextDatabaseByTypeCreator true amp searchState SysFileTApplication AgendusAppType true amp cardNo amp dbID dmErrCantFind SysUIAppSwitch cardNo dbID sysAppLaunchCmd AAM NeedAGM NULL Meeting UID Generation Within each device every meeting record is given a unique identification number or UID Unfortunately for our purposes we could not afford to use this number to identify an AAM meeting A meeting UID was guaranteed to be unique on one particular device only Since we are spreading the same meeting across multiple devices we needed to create our own UID At first we created a nine digit UID based off of
6. amp Alert for Attendee March 10 2005 Once the response to the meeting accepted or declined has been recorded an SMS message must be generated and sent to the coordinator Updating Organizer Attendee List March 17 2006 The SMS received by the coordinator must be interpreted by Agendus and alter the Attendee s confirmation status accordingly to reflect whether they have accepted or declined the invitation Creating Messages April 7 2005 Upon the responses of the Attendees the coordinator should be able to either confirm that meeting or reschedule it to allow more people to come Overall Acceptance April 30 2006 Any and all implemented features must be correct as defined by the specification and must be documented well enough to make the project reproducible and expandable Overall Acceptance April 30 2006 The program must install and run on Palm devices with SMS capability and Palm OS 5 0 or better Overall Acceptance April 30 2005 The project must be stitched into the existing program For Future Consideration 15 16 17 Auto Confirm Cancel Completed After the meeting has been scheduled and confirmed the Attendees should receive a confirmation message that either flags the meeting as confirmed or automatically reschedules the meeting on their own PDA Also upon sending a confirm cancel message the organizer s own meeting information should reflect that the meeting has been confirmed or cancelled Manual Ch
7. Irc dla Pun send an invite attendees but in your contact Agendus view 9 database g Receive response from i Create a meeting someone not on your list of aa e I K send an invite attendees or in your contact Agendus View j9 database 9 Section 9 Organizer Alert Setup Description MPUt Expected Output Output Pass Fail 35 Name is attending this Display Positive Response meeting Display Negative Response agi NOT attending this Display Meeting Display see Attendee Alert same code so only test it once Handle Event Ok Button Go to most recent view Handle Event Go To Button Go to meeting edit view with attendee tab showing Section 10 Selecting Which Attendees to Send To Setup Description Create a Meeting with four attendees Input None Expected Output All attendees should be deselected dot Output Pass Fail Create a Meeting with four attendees Press the Select All Button check mark All attendees should be selected check mark Create a Meeting with four attendees Press the Deselect All Button dot All attendees should be deselected dot Create a Meeting with four attendees Click on one of the dots next to an attendee This attendee should now be selected Create a Meeting with eight attendees Click on one of the dots next to an attendee then scroll the table so that attendee is not shown th
8. The person scheduling the meeting coordinator must be able to send an invitation to all of the Attendees in the form of an SMS text message using the existing Agendus and Agendus Mail programs 3 Message Creation December 23 2006 The SMS messages must be readable by those who do not have Agendus and only have normal SMS capability 4 Recognizing Intercepting SMS January 13 2006 Pre existing AGM will be modified to recognize and redirect AAM generated messages that they may be handled correctly while passing all non AGM messages 5 Parsing Messages into Useful Information February 3 2006 Messages directed to AAM by AGM will be parsed into useful information such as organizer date time and location 6 Check Attendee for Availability February 17 2005 AAM must interface with AGP to utilize pre existing free time checker to see if Attendee is available for the incoming meeting message 7 Alert for Attendee Accept Decline Reschedule March 10 2005 If AGP and AGM are present on the Attendee s SMS receiving device the program must intercept the SMS and display it using the pre existing AGP user interface this interface must allow the user to accept the meeting decline it or reschedule any conflicting appointments 21 10 11 12 13 14 Auto Add New Appointment March 10 2005 If accepted by the Attendee the meeting must be automatically inserted into the Attendee s schedule Message Creation
9. expects Because we are dealing with strings and character pointers this will often cause the system to crash We tried our best to make our parser as reliable stable and secure as possible Interfacing and working with a very large and dynamic codebase 46 Even as we were developing our product a new version of Agendus Palm was in development as well Because of this the codebase we were working with was both large and dynamic Sometimes problems with the code would stem from us and affect normal development and sometimes it was the reverse We had to learn to work together to solve some problems and ensure a good product Localization Because our product is being released in eight different languages we had to make sure that every part of the user interface was completely localizable AGP and AGM already had the necessary mechanisms to implement this so we kept all UI in these two programs alone AAM became a merely a messenger between the two 47 Risks This section delineates certain problems which our project may encounter and have a fair to high probability of impeding the progress of our project Critical Risk f our relationship with iambic is somehow damaged or retracted it would prevent us from accessing their code Our entire project is defined on the assumption that this code will be available to us and so this problem would cause our project to fail utterly Resolution We worked diligently making cer
10. for free he she is given a short trial period After that the program is put into limited mode where things like creating new meetings and records are not allowed If the program is in this limited mode then our functions would fail The next step is to set the memory allocated to the parameter struct to be owned by the operating system If this is not done the memory will be released upon exit of the program leading to strange data on the receiving end One problem we ran into here was that we had character pointers in our parameter structs Of course when we gave the memory to the operating systems we were only giving the pointers themselves not what they pointed to This 43 was giving us very strange and inconsistent results until we found out what the problem was Once we changed our pointers to character arrays of specific length these problems disappeared Last but not least simply call the function that switches applications passing it the specific launch command the struct and the necessary information to identify the other program The operating system will take care of making sure the launch code and struct go where they need to go Here is an example of application switching code err DmGetNextDatabaseByTypeCreator true amp searchState sysFileTApplication iambicMailAppFileCreator true amp cardNo amp dbID if lerr Find out if the version of AGM is compatible err DmDatabaseInfo cardNo dbID
11. the date and time of the meeting We quickly realized that a user may receive or send multiple meetings for the same date and time so we changed the UID to include a randomly generated element as well Repeating Meetings What happens when an organizer wants to send an invitation to a weekly repeating meeting Repeating meetings are stored as only one meeting record with details set to show how it repeats Obviously the responses from the attendees would be significant only for the current instance of this meeting So in order to prevent confusion on both the user s and the application s part a new meeting is created with the same exact details minus the repeating In other words an exact duplicate meeting is created of only that single instance Then the original repeating meeting is set to have an exception on that day meaning that it will not have a repetition where the new single meeting takes place Storage of Attendee Status Both Agendus and the native calendar application already had the ability to add attendees to meetings but neither of them had ways of tracking an attendee s status It was very confusing at first because both the native fields and the fields within the note were being filled with attendees Naturally we decided to modify both Unfortunately we did not realize at the time that we weren t allowed to mess with the native database structures 45 typedef struct ApptDateTimeType when AlarmInfoTy
12. this meeting Status is unknown by default Create a meeting with attendees in latest version of Agendus install previous version doesn t have storage for the status Open this meeting Display of attendees should work Statuses should not cause parse problems in previous versions Add a bunch of attendees to a meeting so that the scroll bar appears on the side Change the top attendee s status then scroll down so it is out of view then scroll up again This attendee s status should be what you changed it to Checking to make sure new status storage doesn t affect other features using the same functions Open a contact that has a few other contacts linked to him her Should still parse display information about linked contacts as before Section 8 Auto Update Attendee Status Setup Description __ Input Expected Output Output Pass Fail Receive repsonse from Create a meeting Attendee s status is updated Men i someone on your attendee list 5 n send an invite positive to Attending Receive repsonse from y Create a meeting Attendee s status is updated send an invite Someone on your attendee list to Declined negative Create a meeting x Disregard the message and send an invite delete aeee Ve repsonse from disable the alert go to last the meeting Agendus view Receive response from Create a meeting someone not on your list of
13. Attendee s letting them know that the meeting has been cancelled Also updates the status of your own meeting as cancelled And don t worry if you send off the message and realize later that you wish to add more attendees You can always go back and add more attendees after the message has been sent and select to send a message to them specifically using the method described previously 13 3 And now all you will do is wait for messages to come alerting you as to who is attending or not You will periodically receive dialogues such as the one below Agendus Meeting X lt Contact Name will be attending this meeting Meeting Organizer Meeting Description Location 1 18 06 5 00 pm 6 00 pm OK Merely accepts the attendee updates their status in the Attendee Tab and returns you to what you were doing before Go To Goes to the meeting where you will see that the Attendee s status has been updated to reflect whether or not they are attending Once you know whether or not you wish to confirm or cancel this meeting merely return to the dialogue outlined in step three and select either the Confirm or Cancel message to be sent 14 Attendee Management As mentioned in the previous section you will periodically receive messages alerting you as to whether or not your attendees are able to come Once you start receiving a few responses your attendee list should start to look like this Business 3
14. Na Ka 8 B exc TA TN KS KN Evald lun o NOR ESI oN ee PST SESTA S E o oN n o v 42 Technical Challenges Inter application Communication Our application has a whole consists of three applications working together where no two applications can be running at the same time AAM acts as a middleman between AGP and AGM When switching from one application to another a launch command along with a specific parameter structure is sent to the other application AGP AAM AGM The first thing to do when switching between applications is to find out if the other program actually exists on this device To do this we search for the program called a database on this platform based on its creator ID which is given to the developer by Palm itself What made things a little more interesting was that AGP and AAM shared the same creator ID so when we tried to switch to one of them we had to add extra checks to ensure that we found the correct one Next the version must be checked If an older version of any program is installed on the device then the necessary launch code definitions will not exist in the program and the application will not know what to do upon receiving them After this the license must be checked In order for the whole package to work together a special license must exist inside iambic s license database on this particular device Not only that but the license must not be expired When a user downloads the program
15. SDN RS 22 Techical PIC Pe RED C 24 Programming Lan ii 24 Programming Debugging Environment eesseseseeseeeeees aa enaa n aa enaa a nennen nennen 24 Code REPO Na ke 24 Bus Ericka SIMA 24 A Tet RERO E Tear cess RUP noth K STANE EMEN ORAS T nue ads BOE ax a oS OUR KANTON INAN 24 p m 24 Release Plans and otatlstios zone aotem sa NN E ooo aa ra tai spe HE b Ia ce hue sat etus 25 Release Plasma a anm auct Rome dad Re uote 25 SLALISHIOS C dd s 25 TS me c EE ETE ROME 26 Features of the Palm Operating SM acerca ties id koisen used 39 A sh cas sisse i blica anes wee back etam deditus SITAN Ran masa n 40 leptin 41 System Sequence DIagram eee sta vos vin aN FEDERN REGE AIAX dn TAREAS XR canas In vuonan 42 Technical hallense ics ee o me Traces tale ouni Debit eus Me ug do M ecu 43 Inter application Command 43 Meeting UID Generation id is 45 R p atino Meetlngs old 45 Storace Of Attendee StAtUs AA eden Skee a a eaa muss 45 P rSIDE I kaa kaaa kaada 46 Interfacing and working with a very large and dynamic codebase esses 46 DE em Er T 48 Catita 48 SETIOUS i MD E a 48 OTOS EINO eee sla dict une a 49 What We Learned from a Software Engineering Perspective 50 Introduction This document is in intended to descr
16. Santa Clara University DEPARTMENT of COMPUTER ENGINEERING Date June 9 2006 I HEREBY RECOMMEND THAT THE THESIS PREPARED UNDER MY SUPERVISION BY Kristen Moss amp Caroline Ratajski ENTITLED Palm Meeting Scheduler BE ACCEPTED IN PARTIAL FULFILLMENT OF THE REQUIREMENTS FOR THE DEGREE OF BACHELOR OF SCIENCE IN COMPUTER ENGINEERING THESIS ADVISOR DEPARTMENTCHAIR Palm Meeting Scheduler Written By Kristen Moss Caroline Ratajski June 11 2006 Version 3 1 Table of Contents Introd cti n et ME 5 MR d caine aden d pde mest s e 5 ONAE DAE E E E ecu e EE 5 The Problemi e kann 5 The Solution N 5 Benefits of the SOITON iiec Tori ous aet Mme Sota iaa 6 A O 6 TAMBO Mi 6 Kristen Moss and Caroline Ratajski titan kaan 6 Dr John NON SAT ESA AA AAA 6 O RO ul ieu 7 A 8 A P 8 Create a Meeting and Add Attendees as 9 Tyno Attendees A E EE ain E E E 13 Attendee Management tese rt ra rede a a E aia o DU a cu rad 15 How to Respond to a Meeting Message oococonocccnoncccnoncnononononnnanonnnnnononcncnnno nono aa enne ennt sten 17 NV AS eee Cro UE EE 19 US REQUIECPIeDES asa ato ufa uenerat dcos E e at unen 21 General REUS MES oso e ite oe ede vt etie ylet e yide tete tuer E r pases TEES 21 REGIA PH kata Man KAI KAL bees KI ER IN An NST VLAN IA O ea baa ade data ade pA K KAAN 21 For Fu t re CONSTA CIA e a o Hit xs axons I
17. anging of Attendee Status Completed The organizer can manually change the status of any attendee at any time This allows for people who do not have Agendus to respond by other means as well as permit those who have already responded to change their plans Automatic Contact Verification Addition Completed When a message comes in the phone number of the sender gets looked up in your contact database If the number is found the display name gets changed to what is in 22 18 19 20 21 22 23 24 25 your database allowing you to be familiar with the name of the organizer no matter what If the number is not found a new record will be added to your contact database with the name and phone number of the organizer Seamless Stitching Into Existing Applications Completed Since the design presentation we have reworked the UI slightly to conform to exactly what iambic desires from one of its own applications Select Specific Attendees to Send Message To Completed Since the design presentation we have reworked the UI slightly to conform to exactly what iambic desires from one of its own applications Quick Deletion of Attendees Completed Ability to quick delete attendees from attendee list as opposed to having to go into directory view which causes the Organizer to leave the attendee list dialogue and enter a completely different dialogue Version License Checking Completed At any time the organizer can choose
18. ar trouble for our project because we needed to intercept particular messages and let others be handled normally It was either hack into the native messaging application impossible or create our own SMS application very difficult and tedious Luckily iambic s program Agendus Mail also has SMS capability and we were able to put our hook inside that program without adding any extra work 39 Diagrams The following diagrams describe the greater overall architecture of the project as well as a more detailed look at the system level The Flowchart on the following page gives the reader a look at how the overall system operates with a mapping of all the junctures and decisions that both the Organizer and the Attendee will face when utilizing this project Directly after the Flowchart is the System Sequence Diagram This diagram shows the project s processes on a more technical level and makes clearer exactly what functionality is provided by this project Instead of explaining how the user would interact with the project this diagram explains how the varying layers of the pre existing program and the addition this project brings to it would interact 40 Flowchart Organizer creates meeting and selects Invite Organizer AAM generates New Meeting SMS message Organizer AGM sends SMS Does attendee have message to phone number attendee s Reflect inability to contact in UI No
19. d AGP latest version AGM latest version Try to do as many AAM functions as possible No functionality available AAM installed AGP not installed AGM not installed Try to do as many AAM functions as possible Should not affect anything it should be as if nothing has been installed AAM installed AGP latest version AGM not installed Try to do as many AAM functions as possible Only AAM feature available Manual Changing of Attendee s Status AAM installed AGP not installed AGM latest version Try to do as many AAM functions as possible No functionality available AAM installed AGP older version AGM older version Try to do as many AAM functions as possible No functionality available 37 AAM installed AGP older version AGM latest version Try to do as many AAM functions as possible No functionality available AAM installed AGP latest version AGM older version Try to do as many AAM functions as possible No functionality available AAM installed AGP full mode AGM limited mode Try to send an invitation Agendus Mail should pop up and tell you that it is in limited mode AAM installed Send a text messag to this Agendus Palm should pop up AGP limited mode system and click accept to add jand tell you that it is in limited AGM full mode an appt to your schedule mode Overall not an automatic field
20. e Message Section 2 Recognizing Intercepting Messages Setup Description nput Expected Output Output Pass Fail Send Text Message Invite Intercept Send Text Message Response Intercept Send Text Message Cancel Intercept Send Text Message Confirm Intercept Send Text Message Meeting Tag Only Intercept Send Text Message Partial Meeting Tag Do not intercept Send Text Message Normal SMS message Do not intercept Section 3 Parsing Messages Into Useful Information Setup Description IPut Expected Output Output Pass Fail 28 Send Text Message Invite all fields filled All fields parsed correctly Send Text Message Invite no organizer Organizer NULL Send Text Message Invite no description Description NULL Send Text Message Invite no location Location NULL Send Text Message Invite no time Time struct filled in with a value of 1 Send Text Message Invite with time Time struct filled in with appropriate time in 24 hr time Send Text Message Invite bare bones min fields see above 5 all in conjunction Meeting UID parsed correctly CancelConfirm field Send Text Message Confirm is 1 denotes confirm message Meeting UID parsed Send Text Message Cancel correctly CancelConfirm field is 0 denotes cancel message Send Text Message Response yes Meeting UID is
21. e Organizer does have the Attendee s phone number and said phone number is linked to a SMS capable device but the Attendee lacks AGM and AGP on their device the Attendee will merely receive the text message as is The text message will be in a readable format so that the Attendee can contact the Organizer through alternate means non AAM SMS message email phone call etc and let them know whether they wish to accept or decline the invitation If the Organizer does have the Attendee s phone number and said phone number is linked to a SMS capable device and the Attendee has AGM and AGP on their device the program will alert the Attendee as to whether or not they are free during that time period If the Attendee is free and wishes to attend the Attendee will click Accept If the Attendee 1s free but does not wish to attend the Attendee will click Decline If the Attendee is not free the AAM will ask the Attendee if they would like to reschedule their current obligation If the Attendee does wish to reschedule their current obligation they will be taken to the current obligation and be allowed to do so Then it will ask them to click Accept for the meeting 19 11 12 13 14 If the Attendee does not wish to reschedule their current obligation they will click Decline The Organizer will receive messages as to whether or not Attendees with AGM and AGP wish to attend the meeting or not The list will update i
22. easier by the use of this tool Stakeholders iambic Inc iambic has agreed to give us access to the source code of Agendus and Agendus Mail and to allow us to enhance and manipulate these products iambic will be able to use whatever we produce in order to better their existing product iambic has reviewed this document and agreed with everything written For more information on iambic visit http www iambic com valid as of June 3 2006 Kristen Moss and Caroline Ratajski The above students have taken this project as their senior design project and will see it to its completion as outlined within this document Failure to do so will place their graduation status in severe jeapordy Dr John Noll Despite not having any financial or career oriented investment in this project Dr Noll has agreed to oversee it and requires a fully completed project by the end He is devoting a great deal of time and energy into the success of this project in the form of advising and meeting with the students Kristen Moss and Caroline Ratajski Failure on the part of the students to deliver the project will result in his failing them Scenario Professor Hill wants to call in three of his students for a meeting concerning a project they have been working on He has been told that the date for their final presentation has been postponed a week due to a problem in the university s scheduling and he has to let his students know and discuss with th
23. em the potential impact this has on their project He opens up his Personal Data Assistant PDA which runs using the Palm Operating System looks up their information types an email explaining the meeting and the date and time he would like to meet them and sends the email hoping for the best These three students Christina Brad and Justin check their email open their own schedules look up their free time email in response whether or not they can attend and wait on Professor Hill s confirmation Let us try this scenario When Professor Hill opens his PDA he accesses Agendus and with a few taps of the pen he has created a meeting in his schedule He has selected from his contacts the three students he wishes to have attend and sends the meeting message Instead of this message going to their email boxes it is transferred via SMS and arrives at their PDAs or cellular phones Agendus will intercept the SMS message and display it in a user friendly format Christina happens to have a PDA with Agendus The message arrives and she is notified of the potential meeting Agendus looks at the schedule she keeps in her device and notifies her that she has that time free She accepts the meeting with the click of a button and a message is sent to Professor Hill automatically updating his meeting attendees Brad also has a PDA with Agendus as well but his time isn t free Agendus will let him know and allow him to either decline the meeting invita
24. ement We set aside a specific schedule of 9 10 hours a week where we would work on our project We never broke this schedule We solidified it in our heads and made sure to tell our boss when to expect us This way if we didn t show up it wouldn t just be our loss but his as well 51
25. en scroll back The correct attendee should still be selected 36 Create a Meeting with four attendees All attendees should be selected check mark Send an invitation The invitation should be sent to all of the attendees with valid mobile phone numbers Create a Meeting with four attendees All attendees should be deselected dot send and invitation A warning message should appear alerting the user that no attendees have been selected Create a Meeting with four attendees Check off some attendees while leaving others delselected then send an invitation The invitation should be sent to only the selected attendees with valid mobile phone numbers Section 11 Quick Deleting an Attendee Setup Description __ Input Expected Output Output Pass Fail Create a Meeting with In the status drop down select This attendee should be four attendees remove attendee removed from the list Create a Meeting with In the status drop down select That particular attendee four attendees 9 remove attendee Send an should not receive an invite invitation Create a Meeting with In the status drop down select This attendee should still be four attendees remove dienes TR removed from the list return to the meeting Section 12 Backwards Compatibility and Existence Testing Setup Description MPUt Expected Output Output Pass Fail AAM not installe
26. ganizer alerting them that you are not going to attend the meeting Reschedule Current This will open the currently conflicting meeting within your own calendar Upon rescheduling this meeting a message will be sent to the organizer alerting them that you are going to attend 18 Use Case The use case defines the method by which the user Organizer and Attendee will utilize the project It explains the process not in terms of how each user sees it but in how the entire operation works This is due to the fact that separating Organizer process from Attendee process would make the entire operation harder to understand Pre process requirements Organizer has both AGP and AGM installed on palm device as well as the AAM and has SMS service l 10 Organizer opens AGP on palm device and generates a meeting complete with date time location title reason for meeting and list of Attendees Organizer selects to send invite to all Attendees on attendee list If the Organizer does not have the Attendee s phone number the inability to contact the Attendee is reflected in the attendee list by italicizing the Attendee s name If the Organizer does have the Attendee s phone number but that phone number is not linked to a SMS capable device for instance a home phone number the SMS service will send back a failed message to the Organizer which will not be handled by AAM but rather by the pre existing SMS service If th
27. ganizer contact This meeting has been Display Incoming Cancel Message cancelled meeting description as above This meeting has been confirmed meeting description as above the Display Incoming Confirm Message string Confirmed should be catted on the end of the description Incoming Confirm Message for Only one Confirmed Display something that has already been should be catted on the end confirmed of the description Incoming Confirm Cancel N Disregard message disable Display ovia dao M uL alert go to last Agendus view Update name of the Setup Invite from someone already in organizer to what you have your contact database stored 32 Setup Invite from someone not in your contact database Add the organizer to the database name and phone only if you accept the invitation Handle Event Invite free Accept Button Generate and send accept message add meeting to schedule bring up edit dialogue for that meeting Handle Event Invite free Decline Button Generate and send decline message go to last view Handle Event Invite not free Reschedule Button Generate and send accept message add meeting to schedule bring up edit dialogue for the conflicting meeting Handle Event Invite not free Decline Button Generate and send decline message go to last view Handle Event Confirm OK button Go to last view Handle E
28. ibe the problem we are trying to solve and our solution to it It will also describe the basic requirements for success of our project Terminology Definition Agendus Attendees Module the add on being created within this project Attendee User interacting with project from the reference point of one who is being invited to and will potentially accept decline the invitation for a meeting as opposed to Organizer Organizer User interacting with project from the reference point of one who is organizing and inviting others to the meeting Controls date time location and purpose of the meeting Also will determine whether meeting is to be cancelled or to proceed as scheduled as opposed to Attendee Personal Data Assistant Short Message Service also known as text messaging Overview The Problem The process of scheduling a meeting between two or more people can become very tedious Between the use of email cell phones PDA s and possible schedule conflicts simple to work around when organizing very few people organization becomes nearly unmanageable on a large scale Solutions for this problem exist in such applications as Microsoft Exchange but this is costly and difficult to maintain and an impractical tool for smaller companies and startups Also many people do not wish to share their entire schedules It would be nice to be able to share only the time that people have free And what of those not in the ser
29. ing This should only be done on the current instance of the repeating meeting and an exception for this meeting will be generated Create a Meeting send invite Assign repeat details to this meeting The meeting UID should only be kept in the current instance To do this the meeting will be assigned the repeat details without the UID then an exception will be generated that has the UID Create a Meeting Confirm Message AgendusConfirm Organizer 6 14 2006 13 00 14 00 Desc Description Loc Location 061410213 Create a Meeting send invite attendee then sets repeat details for that meeting Confirm Message Only confirm the specific instance for which the message refers to Create a Meeting Cancel Message AgendusCancel Organizer 6 14 2006 13 00 14 00 Desc Description Loc Location 061410213 Create a Meeting send invite attendee then sets repeat details for that meeting Cancel Message Only cancel delete the specific instance for which the message refers to Create a Meeting AgendusResponse send invite attendee Response Message YES presses accept 061410213 Create a Meeting AgendusResponse send invite attendee Response Message NO presses decline 061410213 27 Only change the attendee s status in the specific instance for which the message refers to Create a repeating meeting send invite Respons
30. ite either by clicking on a singular dot to check them or by using the select all function which is the checkmark button beneath the attendee list bolas Business 3 2 W maja w Caroline Ratajski w LeonKenned Raccoon City Simon Tam Osiris Hospital Kristen Moss FREI ejeg At any time you can add new attendees by clicking Edit Attendees your previously selected attendees will remain on the list 12 Inviting Attendees l Once you have selected which attendees you wish to send a message to click the little envelope icon to bring up the send message dialogue In the following dialogue select Invite Confirm or Cancel depending on the type of message you wish to send and then click Send SMS This will send an SMS message from your mobile device to the mobile phone numbers associated with each Attendee you have selected Send SMS Please choose the type of message you would like to send dis f Invite Confirm Cancel If you are satisfied with your Attendee List and wish to invite these Attendees click the Invite button Invite Sends an invitation message to the Attendee s alerting them to a new meeting Confirm Sends a confirmation message to the Attendee s letting them know that the meeting has been confirmed Also updates the status of your own meeting as confirmed Cancel Sends a cancellation message to the
31. ment These sections work in conjunction with the success requirements Test Plan SDP Test Plan Test Platform Version 3 5 Test Date 4 24 06 Note All tests must be performed on the sim AND on the device Section 1 Creating Messages Setup Description Input Expected Output Output Pass Fail AgendusMeeting i lt blankline gt Create a Meeting Fop Meeting on 6 14 06 from 6 14 2006 i y 13 00 14 00 061410213 AgendusMeeting Organizer Moi amener pasas Create a Meeting N v 13 00 14 00 Description organizer Organizer location Location Desc Description Loc Location 061410213 Create a Meeting No Description No description field Create a Meeting No Organizer Blank line where organizer should be Create a Meeting No Location No location field Create a Meeting No Time Time field shown as Create a Meeting Specified Time Time field shown in 24hr time 26 Create a Meeting No Attendees Button should not even appear Create a Meeting No Attendees have Phone s Warning should pop up not allowing the message to be sent Create a Meeting Some Attendees have Phone s Send only to these attendees others denoted as Could Not Contact Create a Meeting All Attendees have Phone s Send to all attendees Create a repeating meeting Send invite A meeting UID will be generated and added to the notes of the meet
32. overlaps with 8 00 9 00 Same Day 8 00 9 00 Conflict Create Meeting in a different timezone such that the NOT ADJUSTED time overlaps with 8 00 9 00 Same Day 8 00 9 00 Free Section 5 Attendee Alert Input Expected Output Setup Description Output Pass Fail Display TIN meeting attendee is Your schedule is clear You have a time conflict Display N meeting attendee Display conflicting meeting tested below Organizer Display Incoming meeting all fields full LU Location Times Display Incoming meeting no time Write No Time Display Incoming meeting no Omit the description description 31 Display Incoming meeting no location Omit the location Display Incoming meeting no organizer Omit the organizer Incoming meeting attendee is roe ima 3 N Write No Time should Display nor tas Other Meeting has no never happen though E Description is truncated after Display Incoming meeting description certain amount and catted really long with a Incoming meeting attendee is Description is truncated after Display not free Other meeting has certain amount and catted really long description with a Incoming meeting attendee is Display not free Other Meeting hasa Write the times time Incoming meeting attendee is Wh ere the description goes Display it Meeting has no write the or
33. parsed correctly Response field is 1 positive Send Text Message Response no Meeting UID is parsed correctly Response field is 0 negative Send Text Message Tag Only Message is discarded 29 Use Parse Simulator No Tag present Shouldn t even be able to get this but if so message is discarded Section 4 Schedule Checking Setup Description __ Input Expected Output Output Pass Fail Create Meeting E y Today 8 00 9 00 Same Day 8 00 9 00 Conflict Create Repeating Meeting Today 8 00 Same Day 8 00 9 00 Conflict 9 00 Create Repeating Meeting Start a i Yesterday Repeats on Same Day 8 00 9 00 Conflict Today 8 00 9 00 Create Meeting v y Today 7 30 8 30 Same Day 8 00 9 00 Conflict Create Meeting g 7 N Today 8 30 9 30 Same Day 8 00 9 00 Conflict Create Meeting N Y Today 8 15 8 45 Same Day 8 00 9 00 Conflict Create Meeting Today 7 30 9 30 Same Day 8 00 9 00 Conflict Create Meeting N N Today 10 00 11 00 Same Day 8 00 9 00 Free Create Meeting Today no time Same Day 8 00 9 00 Free Create Meeting Today no time Same Day no time Free 30 Create Meeting Today any time Same Day no time Free Use AAM to Create a Meeting Invite send Send the same invite again Display as a meeting update Create Meeting in a different timezone such that the adjusted time
34. pe alarm RepeatInfoType repeat ExceptionsListType exceptions char description char note char location ApptTimeZoneType timeZone ApptMeetingInfo meetingInfo UInt16 numBlobs BlobType blobs apptMaxBlobs ApptDBRecordType Fortunately Agendus has a much more flexible method of storing extraneous information It creates a string header for the note field of the meeting Note fields have an exceptionally long length allotment This allows us to store almost boundless information For the attendee list it is stored like this Note CONLIST lt Contact1 gt 0 lt Contact2 gt 2 Contact3 gt 0 n AN nNormal Note Text Notice that the numbers in parentheses next to each contact are integers corresponding to specific statuses This information was only written once the user gave the final OK to commit changes to the meeting The process of temporarily storing and manipulating the data was another headache altogether Parsing A good parser is absolutely necessary for an application to be both strong and stable The parser needed to be able to interpret data from a string into specific data structures It also needed to recognize invalid data For instance if the meeting is set for 45 00 then the message is rejected as being invalid Another essential ingredient is security If not properly formatted a malicious or unknowing user may send data that is not in exactly the form that the parse
35. s or even time zones We were working with developers in the Ukraine and in New York If we had done something to break the code and then left for the day the people in the Ukraine would not be able to work until we came back For the sake of moving forward at all the repository must always be kept golden Testing is Incredibly Important Testing in small increments is incredibly helpful because you are able to pinpoint problems quickly and efficiently before it comes time for the debug phase integration testing of the project Unfortunately we were not able to use an automated test framework and so we had to do all the testing by hand at every iteration On one hand it was nice because we could perform one test at any time However you have to be very careful with that A fix for one bug may have caused something else to go wrong After you fix one thing you should always go back and test everything to ensure the proper function of the application as a whole Find a Workplace with no Distractions For us this was one of the most important ingredients to our success Because we were working with iambic we had to go to the office in order to do our work There we had programming environments set up for us Since we were in an office environment every time we went to work we really worked There was no TV video games or conversations to distract us 50 Set Aside Weekly Times to Work This was the other major factor in our achiev
36. sourcegear com sos valid as of June 3 2006 Bug Tracking System Bugtrack is a web based system for tracking bugs in a software program As soon as a developer or tester finds a bug in the program he she goes to the website logs in and reports it From there the project manager can assign a bug to a certain developer Once the developer fixes that particular bug he she sets it as resolved Then the QA department goes through and double checks the resolutions and reopens any bugs that did not get fixed Operating System We programmed for the Palm OS due to the fact that the application we were building and applications we were working within were all designed for Palm OS capable devices Working with this operating system will be detailed later in the document in the section labeled Features of the Palm Operating System Testing The testing that was done by Caroline Ratajski and Kristen Moss was performed on the Treo650 Device and a Treo650 Simulator which operated on a PC running WindowsXP Professional iambic s own in house testing is done on a variety of other handhelds but for the purpose of the project only these two testing mechanisms were used 24 Release Plans and Statistics Release Plans Statistics Lines of Code Files Combined Work Hours Bugs Features Reported and Solved Tests Passed 25 This section of the document describes testing which was performed at each stage of the project s develop
37. stem before there may be a significant learning curve to overcome in order to get her up to speed This will cause extra work for both team members However this is in no way an excuse for the failure of the project Resolution Said team member worked very hard to understand the codebase and asked questions constantly to ensure the success of the project 49 What We Learned from a Software Engineering Perspective Do Not Consider Mediocrity an Option Because we knew from the beginning that our product was going to be released to the public we never had the option to program anything less than near perfection When tens of thousands of users get a hold of the product what seems like a small problem to the developer is multiplied exponentially over the user base In addition users like to complain about problems they encounter which deters other users from purchasing the product If you do not allow yourself to program anything that isn t extremely stable then you will never find yourself in these situations Never Back Down From a Challenge There is always a solution to your problem Have faith in that and commit yourself to the task of finding out what it is Force yourself to think about what would be good for the users and not what would be easy for the developers Keep the Repository Gold Without this you can go absolutely nowhere It is especially important when working on a project with people in different location
38. tain to produce code that was not only error free but was also consistent with the internal coding style of iambic Serious Risk f it turns out that the scope of our project is unrealistic then we may not be able to satisfy all of the success requirements listed in the document and our project might fail Resolution We managed to avoid this problem entirely as can be seen in the section entitled Success Requirements Not only were our core requirements satisfied but we managed a good portion of the requirements deemed For Future Consideration which at the time of dividing which requirements were mandatory and which were not it was anticipated that this section would never be reached Risk One of us is currently suffering from an injury that requires surgery in December if complications arise and she is unable to work the completion of the project may be seriously impacted Resolution Surgery went well and she was diligent with both her work and recovery Risk was not a factor Risk We went a very long period without looking at the risk document which allowed us to become lax in our productivity Resolution Print and tape the list of risks to our machines so we could see them as we worked alongside with the list of requirements and deadlines Risk Unforeseen technological failures such as email unable to be sent and received could seriously hamper our ability to communicate and stall the project and perhaps p
39. tion or reschedule his currently scheduled task Agendus will do this without ever letting Professor Hill know that the reason Brad isn t free is because he has a date with his girlfriend Justin does not have a PDA but he does have a cell phone with SMS functionality exceedingly common today He will see this message and be able to contact Professor Hill by other means to either accept or decline the meeting invitation Once Professor Hill has coordinated fully with his students he confirms the meeting AII this has been done without the hassle and delay that the process took in the first scenario User Manual Installation Requires SMS capable handheld device with PalmOS 5 0 or greater installed and functional PC with Windows operating system installed and functional 2000 or greater 1 Connect your handheld device to your PC using cables provided with the device 2 Open the PalmOne Quick Install application on your PC 3 Right click on the white section underneath Handheld on the PalmOne Quick Install application and select Add Files to Handheld Locate on the CD and add the following PRCs AgendusAttendeesModule prce AgendusMailSSL_EN pre AgendusPre EN prc 3 palmOne Quick Install lO lx File Edit View Help User Kristen Treo 650 y Properties G Agendus ttendeesMod 20 27 KB Palm Application Ready for HotS 3 AgendusMailSSL_EN pre 574 72KB Palm Application Read
40. to send a message to any group of attendees that he she wishes This allows the organizer to add attendees later without having to send the message to everyone again and it also permits the resending of messages to specific people such as people who haven t responded Backwards Compatibility Application should run on older versions of the Palm OS and on older handheld devices Key Attendees Organizer should be able to deem specific Attendees as key attendees if they decline the meeting invitation the coordinator will be prompted to reschedule the meeting Priority Matrix Organizer should be able to determine the importance of the meeting utilizing a priority urgency matrix Email Messages Allow the user to choose between sending messages via email or SMS This would provide more flexibility to the system and allow us to send more information about the meeting that we are allowed to do in 160 characters of text message 23 Technical Details Programming Language The bulk of the programming was done in C with some sections done in C Programming Debugging Environment Metrowerks Codewarrior was used for the programming and debugging environment For more information on Metrowerks Codewarrior visit http www metrowerks com valid as of June 3 2006 Code Repository Source Off Site SOS was the code repository used the central server for which was hosted by iambic SOS is a free download available at http www
41. tself without the Organizer needing to do anything names will be bolded if the Attendee is planning on attending strikeout if the Attendee is not going to attend The Organizer will look over the attendee list and if they are not satisfied with the list of attendees not enough people are able to attend or a critical person for the meeting is missing they will click Reschedule Meeting A dialogue will open allowing them to reschedule the time and date of the meeting Upon rescheduling they will click Resend Invite and the process will begin once more from step 3 The Organizer will look over the attendee list and if they are satisfied with the list of attendees they will click Confirm Meeting The Attendees will see that the meeting has been confirmed 20 Success Requirements This is a brief section of the document outlining the specific functional requirements which define the success of the project In order for this project to be considered a success the program must be verified by Adriano Chiaretta representing iambic and both team members Kristen Moss and Caroline Ratajski General Requirements Here is a short list of functionality and features that if completed would define the success of the project Required Title Deadline 1 Message Creation December 23 2006 The SMS messages must be readable by those who do not have Agendus and only have normal SMS capability 2 Message Creation December 23 2006
42. ut it at a critical status Resolution Several different methods of communication such as various email addresses and phone numbers were exchanged in order to ensure a potential for constant communication from the side of the programmers to the side of the advisor Regardless of this communication was still an issue 48 Risk Unforseen problems can occur due to interfacing with a large pre existing codebase Resolution A willingness to ask questions of those who know the codebase very intimately as well as the ability to revert to a previous version of said code if considerable changes were made that did not coincide with how the codebase should work alleviated this problem Concerning Risk f we have issues with obtaining and installing tools iambic has offered to allow us the use of the environments they have already set up in the office It would mean however that every time we want to work on the project we would have to go to iambic s office which may have certain schedule constraints associated with it This may require us to work harder to guarantee the success of the project Resolution This turned out to be less of a risk and more of a boon to the project s success By going to iambic every day to work we were ensured a work environment with no distractions as well as ready access to those more knowledgeable about iambic s codebase such as Adriano Risk Because one of us has never worked with the Palm Operating Sy
43. vent Confirm Go To button Go to the meeting that has been confirmed Handle Event Cancel Set as Cancelled Button Set the meeting as cancelled go to that meeting s edit dialogue Handle Event Cancel Delete Button Delete the meeting go to last view Section 6 Adding to Schedule Setup Description Adding a Meeting Input Normal Meeting Expected Output Meeting added to calendar Output Pass Fail Adding a Meeting Meeting already exists duplicate or update message Meeting updated if necessary 35 Check Defaults Category Meeting Defaults Persist Check Defaults Icon if selected Meeting Defaults Persist Check Defaults Alarm Meeting Defaults Persist Section 7 Manual Changing of Attendee Status Setup Description Input Open New Meeting add Expected Output Output Pass Fail none attendees Status is unknown by default none Close and reopen meeting Status is the same as before Change atone sas ro way ano none Close and reopen meeting o at changes none Tap on attendee in Maus pre none Return add more attendees E should be none Close and reopen meeting Status is the same changes have been saved 34 Create a meeting with attendees in a previous version of Agendus doesn t have storage for the status install over Open
44. ver To put people into a server requires a great deal of setup that usually must be done by the system administrator There should be a simpler way to solve such an issue The Solution iambic Inc has a program called Agendus for PalmOS which makes scheduling and organizing information in Palm Handhelds simpler and easier Our plan is to add functionality to this program in order to allow a dialogue of sorts between meeting coordinators and attendees This dialogue would be conducted without letting the coordinator see the schedule of each of the attendees Instead the attendee would see the request for a meeting and also whether or not he she already has an appointment scheduled for that time From there the attendee could choose to either accept or decline without having to look up that time and date in his schedule Benefits of the Solution Meeting organizers are able to quickly and easily invite attendees and are notified of their attendance status The meeting attendees are able to accept or decline meetings while away from their computers without having the privacy of their schedules compromised Also those without Agendus are still able to receive notifications about the meeting regardless of their own lack of PDA If they decide to convert to PDA Agendus the setup of our system is simpler and cheaper than creating and maintaining a server to hold everyone s schedules Overall organization among businesses and people is made much
45. w Weekly Meeting 4 New Meeting New Call New Task New Memo New Email L New Trip 2 i ini z si TE New Contact D EM 320200 we 2 Once you have opened a new meeting fill it with pertinent information such as the time date location and who will be organizing the event acond 3 Now that you have created your meeting if you wish to add attendees select the attendees tab as shown below and click Edit Attendees 10 EMI Business 2 Tue 6 13 06 1 00 pm 3 00 pm 4 EJ 8a 9a 10 11 12 1p 2p 3p 4p 5p 6p 7p Repeat None Icon w None 2 Y 2 a o Cancel J amp amp 4 Select which contacts you wish to attend this meeting by checking the checkbox next to their name Once you are satisfied with your attendee list click Done Attendees v All abc def ghi jkl mno pgr stu vwx yz All Adriano Chiaretta iambic Y Caroline Ratajski M Kristen Moss Y Leon Kennedy Raccoon City PD Matt Ishida Y Simon Tam Osiris Hospital 5 You should now see your selected attendees in your new meeting s attendee list as pictured below 11 Business 3 Repeat None Icon w None i x RE ue Caroline Ratajski LeonKenned Raccoon City SimonTam Osiris Hospital Kristen Moss FREI BEE 6 To send an invite make certain that you have selected all of the attendees you wish to inv
46. y for HotS No item selected Paste Select All Add Files to Handheld Add Folder to Handheld Additional Info A Expansion Card 102 7 MB free as of last HO Drag files here for installation to expansion card Y Hide Details 3 items 2 41 MB 77 4 Push the Hard Button on the connector to your handheld device 5 Wait for the HotSync to complete Once installation is complete you should see the following two icons js di Agendus Agendus Pre Note that you should not see any icon for the AgendusAttendeesModule 6 In order to get the application fully ready to run you must set up AGM so that it accepts SMS messages Open AGM and make certain that the checkbox for Send and receive SMS messages is selected as below if you wish to select the other two you may it will not affect this application Startup Wizard Please select functionality you want to use in order to setup Agendus Mail appropriately c oO Synchronize emails with desktop PC HotSync Send and receive emails wirelessly via internet POP3 IMAP SMTP E Send and receive SMS messages Click Finish and you re ready to go Create a Meeting and Add Attendees 1 To create a new meeting click the date dialogue at the top and select New Meeting you may also select New Annual Event or New Weekly Meeting EEZ Tools Options New Annual Event Ne
Download Pdf Manuals
Related Search
Related Contents
Nobreak NewBlue G3 2. - Brother ST7570 - STMicroelectronics (GPS) and Geographic Information Systems (GIS) BDO ZOOM - Au service du développement des entreprises Clique para fazer o do manual técnico do tribunal de contas do estado do rio de janeiro sistema DIABLO User Manual Battery Protect - Victron Energy Copyright © All rights reserved.
Failed to retrieve file