42
University of Victoria Faculty of Engineering SENG 499 / ELEC 499 / CENG 499 Terry Bourgeois Masaya Tamashiro Benny Wijoyo 4/3/2009 V-mail for the OLPC

V-mail for the OLPC - University of Victoriaweb.uvic.ca/~masaya/files/SENG499_Final_Report.pdf · University of Victoria Faculty of Engineering SENG 499 / ELEC 499 / CENG 499 Terry

Embed Size (px)

Citation preview

Page 1: V-mail for the OLPC - University of Victoriaweb.uvic.ca/~masaya/files/SENG499_Final_Report.pdf · University of Victoria Faculty of Engineering SENG 499 / ELEC 499 / CENG 499 Terry

University of VictoriaFaculty of EngineeringSENG 499 / ELEC 499 / CENG 499

Terry Bourgeois

Masaya Tamashiro

Benny Wijoyo

4/3/2009

V-mail for the OLPC

Page 2: V-mail for the OLPC - University of Victoriaweb.uvic.ca/~masaya/files/SENG499_Final_Report.pdf · University of Victoria Faculty of Engineering SENG 499 / ELEC 499 / CENG 499 Terry

Dr Jens Weber

University of VictoriaSoftware EngineeringRoom 206, Engineering Lab WingP.O. Box 3055 STN CSCVictoria, British Columbia, Canada V8W 3P6

April 3, 2009

Dear Dr. Weber,

Please accept the attached report entitled "V-mail for the OLPC".

This report is the result of work completed during the spring 2009 semester, where our team made up of Benny Wijoyo, Masaya Tamashiro and myself, Terry Bourgeois developed a video messaging system called “V-mail” targeted for the OLPC. The work done on this project was in fulfillment of SENG 499/ELEC 499/CENG 499 course requirements.

On behalf of the team, I would like to thank you for your help during the course of the semester, and we sincerely hope that you enjoy the attached report, and that V-mail can be helpful to you in some capacity.

Sincerely,

Terry Bourgeois - Team Contact Person

Page 3: V-mail for the OLPC - University of Victoriaweb.uvic.ca/~masaya/files/SENG499_Final_Report.pdf · University of Victoria Faculty of Engineering SENG 499 / ELEC 499 / CENG 499 Terry

CONTENTSTable of Figures ....................................................................................................................................................i

Summary .............................................................................................................................................................ii

1 Introduction................................................................................................................................................ 1

2 System Design ............................................................................................................................................ 2

2.1 System Overview .............................................................................................................................. 2

2.2 The OLPC’s XO-1................................................................................................................................ 2

2.3 Intended Use Cases........................................................................................................................... 4

2.3.1 Use Case 1: Record and Send Video ............................................................................................. 4

2.3.2 Use Case 2: Receive and Open New Mail ..................................................................................... 5

2.4 Design ............................................................................................................................................... 5

2.4.1 Interface Mock-ups....................................................................................................................... 6

2.4.2 UML Diagrams ............................................................................................................................ 12

3 Implementation Details ............................................................................................................................ 15

3.1 Python............................................................................................................................................. 15

3.2 Message Sending and Retrieval ...................................................................................................... 15

3.2.1 Gmail........................................................................................................................................... 15

3.2.2 libgmail ....................................................................................................................................... 15

3.3 Message Recording ......................................................................................................................... 15

3.4 User Interface ................................................................................................................................. 16

4 Conclusions............................................................................................................................................... 17

5 Recommendations.................................................................................................................................... 18

5.1 Automated Inbox Management...................................................................................................... 18

5.2 Secure Login.................................................................................................................................... 18

5.3 Multiplatform.................................................................................................................................. 18

5.4 Multiple Message Formats ............................................................................................................. 18

6 Works Cited .............................................................................................................................................. 19

APPENDIX A Progress Report # 1 ................................................................................................................ 20

1. Project Information .................................................................................................................................. 22

2. Summary .................................................................................................................................................. 23

Page 4: V-mail for the OLPC - University of Victoriaweb.uvic.ca/~masaya/files/SENG499_Final_Report.pdf · University of Victoria Faculty of Engineering SENG 499 / ELEC 499 / CENG 499 Terry

3. Proposed Milestones................................................................................................................................ 24

4. Details of Planned Solution ...................................................................................................................... 26

5. Current Progress....................................................................................................................................... 27

APPENDIX B Progress Report # 2 ................................................................................................................ 28

1 Project Information .................................................................................................................................. 30

7 Summary .................................................................................................................................................. 31

2 Other Related Information ....................................................................................................................... 32

6. Proposed Milestones................................................................................................................................ 33

3 Details of Planned Solution ...................................................................................................................... 35

4 Current Progress....................................................................................................................................... 36

Page 5: V-mail for the OLPC - University of Victoriaweb.uvic.ca/~masaya/files/SENG499_Final_Report.pdf · University of Victoria Faculty of Engineering SENG 499 / ELEC 499 / CENG 499 Terry

i | P a g e

TABLE OF FIGURESFigure 1: THE XO-1 HARDWARE ......................................................................................................................... 1Figure 2: V-mail System Overview...................................................................................................................... 2Figure 3: The XO-1's features ............................................................................................................................. 3Figure 4: XO-1 Tablet Configuration................................................................................................................... 3Figure 5: Use Case Diagram for v-mail ............................................................................................................... 4Figure 6: Main Window ...................................................................................................................................... 6Figure 7: Choose Receiver Window.................................................................................................................... 7Figure 8: Create Video Window ......................................................................................................................... 8Figure 9: Send Video Window ............................................................................................................................ 9Figure 10: Received Message Window............................................................................................................. 10Figure 11: View Message Window ................................................................................................................... 11Figure 12: Send Sequence Diagram.................................................................................................................. 12Figure 13: Receive Sequence Diagram ............................................................................................................. 13Figure 14: V-mail Class Diagram ....................................................................................................................... 14

Page 6: V-mail for the OLPC - University of Victoriaweb.uvic.ca/~masaya/files/SENG499_Final_Report.pdf · University of Victoria Faculty of Engineering SENG 499 / ELEC 499 / CENG 499 Terry

ii | P a g e

SUMMARY

The goal of the “V-mail for the OLPC” project was to develop an extremely simplified computer messaging system. This messaging system consists of a video messaging service, where short video clips are sent via email, as opposed to regular text emails. This system was developed specifically for the OLPC’s XO-1, and its unique hardware, which includes a built-in camera, microphone, speakers, and external interface buttons. Using this system, a user can send a video message without any typing or use of a mouse. Development of the project consisted of the design and implementation of the major use cases: creating and sending messages, as well as receiving and viewing messages. Implementation of the project was done using the Python programming language, as this is the language used for the XO-1’s underlying operating system, ‘Sugar’. Python provides bindings for many useful software libraries, including GTK, GStreamer, as well as libgmail, a library for the underlying email messaging service, Gmail. Although the major use cases have been completed, many more features have become desired, and hopefully will be included within subsequent versions of V-mail.

Page 7: V-mail for the OLPC - University of Victoriaweb.uvic.ca/~masaya/files/SENG499_Final_Report.pdf · University of Victoria Faculty of Engineering SENG 499 / ELEC 499 / CENG 499 Terry

1 | P a g e

1 INTRODUCTIONThe goal of the “V-mail for the OLPC” project is to develop an extremely simplified computer messaging system. This system is intended for the elderly, who may have limited or no computer experience, or for sick patients residing in a hospital or in a hospice who may have difficulty with “typical” computer interfaces. The OLPC Project’s “XO-1” hardware (Figure 1) provides many unique features in an extremely low-cost package. The V-mail system will allow the X0-1 to be used in its’ “tablet” mode: folded so that the keyboard is hidden, exposing only the screen, the built-in camera and microphone, and some simple control buttons. Users will be able to record short video messages of themselves with just a few button presses, and send them to friends and family, who can then view them at their convenience. Users will also be able to receive similarly recorded video messages from their loved ones, which will be downloaded automatically by the system. In addition, users will be able to receive regular email messages from any email service. The system will automatically download these messages as well, including any photo attachments, and display them in an easy-to-use interface. With simplicity as the main goal, the “V-mail for the OLPC” team hopes to create a system which will allow people to keep in touch in new and interesting ways.

FIGURE 1: THE XO-1 HARDWARE

Page 8: V-mail for the OLPC - University of Victoriaweb.uvic.ca/~masaya/files/SENG499_Final_Report.pdf · University of Victoria Faculty of Engineering SENG 499 / ELEC 499 / CENG 499 Terry

2 | P a g e

2 SYSTEM DESIGN

2.1 SYSTEM OVERVIEW

A basic overview of the V-mail system is shown in Figure 2. V-mail will act as an intermediate interface between the user and the existing Gmail service offered by Google. V-mail consists of a software application targeted for the OLPC hardware which is able to record short video messages, and then send these messages via email using a Gmail account. The system will also be able to download and play messages which have been sent to the Gmail account.

FIGURE 2: V-MAIL SYSTEM OVERVIEW

2.2 THE OLPC’S XO-1The V-mail project is designed specifically for the OLPC XO-1 hardware shown in Figure 3. The key features of the XO-1 which are exploited by the V-mail system include the built-in camera, microphone, speakers, and the directional pad and game buttons, all of which lie adjacent to the XO-1’s screen.

Page 9: V-mail for the OLPC - University of Victoriaweb.uvic.ca/~masaya/files/SENG499_Final_Report.pdf · University of Victoria Faculty of Engineering SENG 499 / ELEC 499 / CENG 499 Terry

3 | P a g e

FIGURE 3: THE XO-1'S FEATURES

When the XO-1 is folded in its tablet configuration, as shown in Figure 4, all of these key features are exposed. The goal of the V-mail project was to design a messaging system specifically for this tablet configuration.

FIGURE 4: XO-1 TABLET CONFIGURATION

Page 10: V-mail for the OLPC - University of Victoriaweb.uvic.ca/~masaya/files/SENG499_Final_Report.pdf · University of Victoria Faculty of Engineering SENG 499 / ELEC 499 / CENG 499 Terry

4 | P a g e

2.3 INTENDED USE CASES

Figure 5 shows the use case diagram for the V-mail system. As indicated, there are 2 relevant actors, the user, and an administrator who is responsible for setting up the account and managing a contact list. Setting up an account simply refers to creating a standard Gmail account using Google’s web based registration system which can be accessed at www.gmail.com. Managing the contact list currently refers to editing a text file which is stored locally on the OLPC. The tasks required for the administrator are minimal and thus omitted from further use case analysis.

FIGURE 5: USE CASE DIAGRAM FOR V-MAIL

The basic requirements of the system were to satisfy the following use cases.

2.3.1 USE CASE 1: RECORD AND SEND VIDEO

Actor: OLPC UserEvent: User wishes to send a video message to a friend or family memberPrecondition: Account has been setup by the adminMain Success Scenario:

1. User selects the “Create” button.

Page 11: V-mail for the OLPC - University of Victoriaweb.uvic.ca/~masaya/files/SENG499_Final_Report.pdf · University of Victoria Faculty of Engineering SENG 499 / ELEC 499 / CENG 499 Terry

5 | P a g e

2. System displays the “Choose Receiver” page.3. User chooses the recipient(s) and Clicks the “Select” button.4. System displays the “Create Video” page.5. User selects the “Record” button6. System starts the recording.7. User presses the “Stop” button.8. System saves the video to a file.9. System displays the “Send Video” page and plays the recorded video.10. User selects the “send” button.11. System sends the message to the recipient(s).

Alternate flows:10a. User is not satisfied with the result and clicks the “create video” button again.10a.1 Go to 5 (the previous video will be replaced with the new one).

10b. User selects the “Replay” button.10b.1 System displays the recorded video one more time

2.3.2 USE CASE 2: RECEIVE AND OPEN NEW MAIL

Actor: OLPC UserEvent: User wishes to open a video message from a friend or family memberPrecondition: Account has been setup by the admin, there is a new mail containing a video received.Main Success Scenario:

1. User selects the “Download” button.2. System updates the inbox and adds the new message.3. User selects the “View” button.4. System displays the “Receive Video” page”.5. User selects one of the new messages.6. System downloads the attachment 7. System displays the “Receive Video Player” page and plays the video.8. User selects the “Back” button.9. System displays the “Receive Video” page.

Alternate Flows:8a. User selects the “Watch Again” button.8a1. System plays the video one more time.

8b. User selects the “reply” button8b.1 System displays the “Choose Receiver” page.

2.4 DESIGN

Page 12: V-mail for the OLPC - University of Victoriaweb.uvic.ca/~masaya/files/SENG499_Final_Report.pdf · University of Victoria Faculty of Engineering SENG 499 / ELEC 499 / CENG 499 Terry

6 | P a g e

This section contains many of the design documents generated during the pre-implementation stages of development of V-mail, which include UML diagrams and some basic mock-ups of interface screens.

2.4.1 INTERFACE MOCK-UPS

The goal of the V-mail team was to create a simplified interface. Thus, it was an explicit design decision to implement an interface made up of a series of simple windows. The alternative would have been to have a single window with all pertinent information, which the team felt would have resulted in a cluttered, and confusing interface with too much information on screen at once. What follows is a brief description of each window.

2.4.1.1 MAIN WINDOW

FIGURE 6: MAIN WINDOW

Page 13: V-mail for the OLPC - University of Victoriaweb.uvic.ca/~masaya/files/SENG499_Final_Report.pdf · University of Victoria Faculty of Engineering SENG 499 / ELEC 499 / CENG 499 Terry

7 | P a g e

The main window is the window displayed when V-mail is started. Most windows will follow a similar design to that of the Main Window: having the main content take up a large portion of the screen in the center, and having a row of buttons along the bottom of the screen. Pressing one of these buttons will take the user to the next screen (the next screens are indicated in the mock-ups).

From the main screen, the user can choose to create a message, view received messages, or download new messages which are new and residing on the Gmail server, but have not been downloaded to the OLPC.

2.4.1.2 CHOOSE RECEIVER WINDOW

The Choose Receiver Window consists of a list of the user’s contacts, which can be toggled as ‘selected’ or ‘not selected’ as indicated by the check boxes on the left-hand side.

FIGURE 7: CHOOSE RECEIVER WINDOW

Page 14: V-mail for the OLPC - University of Victoriaweb.uvic.ca/~masaya/files/SENG499_Final_Report.pdf · University of Victoria Faculty of Engineering SENG 499 / ELEC 499 / CENG 499 Terry

8 | P a g e

2.4.1.3 CREATE VIDEO WINDOW

The Create Video Window is where the user creates their video message. At the center of the window is a live-feed showing what is being captured by the camera. Recording doesn’t start until the ‘Record’ button is pressed. Recording stops when the ‘Stop’ button is pressed. At the completion of recording, the user is automatically taken to the next screen, the Send Video Window.

FIGURE 8: CREATE VIDEO WINDOW

Page 15: V-mail for the OLPC - University of Victoriaweb.uvic.ca/~masaya/files/SENG499_Final_Report.pdf · University of Victoria Faculty of Engineering SENG 499 / ELEC 499 / CENG 499 Terry

9 | P a g e

2.4.1.4 SEND VIDEO WINDOW

The Send Video Window plays a message recorded by the user so that they can review the message before it is sent. From here, a user can select to replay the message so that they can review it again, record a different message if they are not satisfied with the current one, or send the current message. If the user chooses to send the message, the user is sent back to the main screen.

FIGURE 9: SEND VIDEO WINDOW

Page 16: V-mail for the OLPC - University of Victoriaweb.uvic.ca/~masaya/files/SENG499_Final_Report.pdf · University of Victoria Faculty of Engineering SENG 499 / ELEC 499 / CENG 499 Terry

10 | P a g e

2.4.1.5 RECEIVED MESSAGE WINDOW

The Received Video Window consists of a list of received messages. Users reach this window from the Main Window. From here, the user can either select the message they wish to view, or return to the Main Window. Selecting a message takes the user to the View Message Window.

FIGURE 10: RECEIVED MESSAGE WINDOW

Page 17: V-mail for the OLPC - University of Victoriaweb.uvic.ca/~masaya/files/SENG499_Final_Report.pdf · University of Victoria Faculty of Engineering SENG 499 / ELEC 499 / CENG 499 Terry

11 | P a g e

2.4.1.6 VIEW MESSAGE WINDOW

The View Message Window allows users to view V-mail message received from other users. The content of the message is displayed in the center of the window. From here, a user can choose to view the message again, to go back to the Received Message Window, or to reply to the viewed message. Selecting ‘Reply’ will take the user to the Create Video Window.

FIGURE 11: VIEW MESSAGE WINDOW

Page 18: V-mail for the OLPC - University of Victoriaweb.uvic.ca/~masaya/files/SENG499_Final_Report.pdf · University of Victoria Faculty of Engineering SENG 499 / ELEC 499 / CENG 499 Terry

12 | P a g e

2.4.2 UML DIAGRAMS

The use cases described in Section 2.3 resulted in the UML diagrams shown below.

FIGURE 12: SEND SEQUENCE DIAGRAM

Page 19: V-mail for the OLPC - University of Victoriaweb.uvic.ca/~masaya/files/SENG499_Final_Report.pdf · University of Victoria Faculty of Engineering SENG 499 / ELEC 499 / CENG 499 Terry

13 | P a g e

FIGURE 13: RECEIVE SEQUENCE DIAGRAM

Page 20: V-mail for the OLPC - University of Victoriaweb.uvic.ca/~masaya/files/SENG499_Final_Report.pdf · University of Victoria Faculty of Engineering SENG 499 / ELEC 499 / CENG 499 Terry

14 | P a g e

FIGURE 14: V-MAIL CLASS DIAGRAM

The Interface Mock-ups shown in Section 2.4.1 indicate the need for several different windows. This is shown in the class diagramFigure 14: V-mail Class Diagramin Figure 14 by the various window classes which derive from a common base ‘Window’ class. These window classes will be controlled by the ‘WindowManager’ class, while the ‘MailManager’ class will be responsible for the sending and receiving of messages. A ‘Camera’ class will be responsible for video recording, and a ‘Player’ class will be responsible for video playback.

Page 21: V-mail for the OLPC - University of Victoriaweb.uvic.ca/~masaya/files/SENG499_Final_Report.pdf · University of Victoria Faculty of Engineering SENG 499 / ELEC 499 / CENG 499 Terry

15 | P a g e

3 IMPLEMENTATION DETAILS

3.1 PYTHON

The implementation language chosen for this project was Python, as “Much OLPC development happens in Python” (Developers manual).

3.2 MESSAGE SENDING AND RETRIEVAL

3.2.1 GMAIL

Message sending and receiving for the V-mail system is done via Google’s Gmail web mail service(http://www.gmail.com). Gmail was launched on April 1, 2004 (Jackson, 2009) on an invitation-only basis, until it was opened up to registration without an invitation in February 2007. The main advantages to Gmail compared to other free web-based email services were two-fold: the ability for a user to search their inbox, and the extremely large storage space available. As of April 1, 2009, Gmail accounts had an upper limit of over 7300 MB of storage space. (Gmail.com).

The large storage space of Gmail made it an ideal candidate for use by the V-mail system. Since V-mail messages will be in the form of video files, storage space was the most important consideration when comparing the various free web-based email systems.

3.2.2 LIBGMAIL

To have direct access to Gmail functionality via Python, an open-source library called “libgmail” was used. With the use of libgmail, Gmail messages can be either downloaded from an account, or sent to another email account. Libgmail also allows for simple queries into Gmail accounts, such as information about message threads, or even access to the contact list. In the V-mail project, modified libgmail code was used to send video messages as attachments to regular emails, and to download received messages and their video attachments. All functionality related to the use of libgmail is encapsulated by the MailManager class, as shown in the class diagram in Figure 14.

3.3 MESSAGE RECORDING

Message recording is done via the OLPC’s built-in camera. The camera is a color video camera capable of recording video at 640 x 480 resolution at 30 FPS (Hardware specification, 2009). The camera is able to act as a “v4l2src” device, meaning it is compatible with the video4linux APIs

Page 22: V-mail for the OLPC - University of Victoriaweb.uvic.ca/~masaya/files/SENG499_Final_Report.pdf · University of Victoria Faculty of Engineering SENG 499 / ELEC 499 / CENG 499 Terry

16 | P a g e

(http://linuxtv.org/v4lwiki/index.php/Main_Page). As such, the camera can easily be manipulated in Python via Python’s GStreamer bindings, known as ‘pygst’. GStreamer is an open-source multimedia framework (http://gstreamer.freedesktop.org/modules/gst-python.html) and provides plugins for working with v4l2src devices.

File sizes for the resulting video recordings were a major consideration for the implementation of the camera. Because these files were sent as attachments, and because of the OLPC’s limited memory space, their size needed to be kept as small as possible, while still preserving decent video quality. Thus, the videos were chosen to be recorded at 10 FPS with a resolution of 200 x 150. Using these properties, a 30 second video results in a file of approximately 500kB. Also, the ogg-theora (http://theora.org/) file format was chosen for the video files. This was chosen due to its open-source and multi-platform nature.

3.4 USER INTERFACE

Implementation of the user interface of V-mail was done using ‘pygtk’, Python’s bindings for the GTK libraries. Much of the interface consists of standard GTK widgets, with a few exceptions.

As described in Section 2.2, the V-mail system hoped to take advantage of the XO-1 hardware in its tablet configuration. To do this, V-mail uses the directional pad and the game buttons for navigation through V-mail’s window system. The directional pad is used to move the focus of the application to the various on-screen buttons, while the game buttons act as selection keys. The on-screen button which currently has focus is highlighted in a green color. This is one of the custom widgets designed specifically for V-mail.

Page 23: V-mail for the OLPC - University of Victoriaweb.uvic.ca/~masaya/files/SENG499_Final_Report.pdf · University of Victoria Faculty of Engineering SENG 499 / ELEC 499 / CENG 499 Terry

17 | P a g e

4 CONCLUSIONS

Using the XO-1’s unique hardware features, in conjunction with Python and numerous other open-source libraries, the ‘V-mail for the OLPC’ project team was able to construct a prototype application capable of satisfying the system’s major intended use cases. Using libgmail’s helpful and simple interfaces allowed for the utilization of the large storage space allowed within a Gmail account. Using GStreamer and GTK allowed for rapid development of user interface elements, and of the multimedia components including the camera and the video player. Also, by constructing a simple, multi-windowed interface, the V-mail team was able to construct a messaging system which required no keyboard or mouse.

Page 24: V-mail for the OLPC - University of Victoriaweb.uvic.ca/~masaya/files/SENG499_Final_Report.pdf · University of Victoria Faculty of Engineering SENG 499 / ELEC 499 / CENG 499 Terry

18 | P a g e

5 RECOMMENDATIONS

Due to many factors associated with the development period of the V-mail for the OLPC project, there are still many outstanding features yet to be implemented, and some features which are desired, but did not come to attention until the late development stages. These features are discussed here. It is recommended that these features be considered for implementation if the V-mail project were to continue.

5.1 AUTOMATED INBOX MANAGEMENT

The current implementation of the V-mail system satisfies the 2 use cases described in Section 2.3. In addition to these, it was hoped that the system would automatically and periodically download any new messages which have arrived, and notify the user when these messages have been downloaded. The current implementation contains a button on the main screen which needs to be manually pressed to initiate the downloading thread. In addition, due to the limited memory space of the XO-1, the size of the local inbox should be monitored and older messages should automatically be deleted periodically. Adding these features will greatly simplify long term use of the system.

5.2 SECURE LOGIN

The current implementation has yet to implement a secure login feature. Ideally, this would consist of a login screen which appears when the V-mail application is started which allows for user account id and password fields to be entered. This account information would not need to be entered again until the application is restarted.

5.3 MULTIPLATFORM

Due to the open-source nature and multiplatform nature of much of the code, the V-mail system has the potential to be compatible across numerous platforms. Much of the development was done on Ubuntu linux, and the application is 100% function on Ubuntu, provided a proper v4l2src camera is used. Some investigation may be worthwhile to determine the feasibility of porting the code to a Windows implementation.

5.4 MULTIPLE MESSAGE FORMATS

Currently, the V-mail system is only able to receive messages in the same video format as that which it sends. It is hoped that plain text email messages can be sent to a V-mail user, and that the V-mail system will display such text messages appropriately. In addition, image files could also be sent, along with short audio only files. Allowing for messages of these types to be received would allow the V-mail user to receive messages sent from any email account from any email service.

Page 25: V-mail for the OLPC - University of Victoriaweb.uvic.ca/~masaya/files/SENG499_Final_Report.pdf · University of Victoria Faculty of Engineering SENG 499 / ELEC 499 / CENG 499 Terry

19 | P a g e

6 WORKS CITEDDevelopers manual. (n.d.). Retrieved March 29, 2009, from wiki.laptop.org: http://wiki.laptop.org/go/Developers

Gmail.com. (n.d.). Retrieved April 1, 2009, from Gmail.com: http://www.gmail.com

Hardware specification. (2009, February 28). Retrieved March 20, 2009, from wiki.laptop.org: http://wiki.laptop.org/go/Hardware_specification

Jackson, T. (2009, April 2). Gmail turns 5. Retrieved April 2, 2009, from The Official Gmail Blog: http://gmailblog.blogspot.com/2009/04/gmail-turns-5.html

libgmail — Python binding for Google's Gmail service. (n.d.). Retrieved March 20, 2009, from http://libgmail.sourceforge.net/

Page 26: V-mail for the OLPC - University of Victoriaweb.uvic.ca/~masaya/files/SENG499_Final_Report.pdf · University of Victoria Faculty of Engineering SENG 499 / ELEC 499 / CENG 499 Terry

Appendix A Progress Report # 1

20 | P a g e

APPENDIX A PROGRESS REPORT # 1

University of VictoriaFaculty of EngineeringSENG/ELEC/CENG 499

V-MAIL FOR THE OLPC

January 23, 2009

Terry Bourgeois ([email protected])Masaya Tamashiro ([email protected])

Benny Wijoyo ([email protected])

Page 27: V-mail for the OLPC - University of Victoriaweb.uvic.ca/~masaya/files/SENG499_Final_Report.pdf · University of Victoria Faculty of Engineering SENG 499 / ELEC 499 / CENG 499 Terry

Appendix A Progress Report # 1

21 | P a g e

TABLE OF CONTENTS1. Project Information ................................................................................................................................. 22

2. Summary.................................................................................................................................................. 23

3. Proposed Milestones ............................................................................................................................... 24

4. Details of Planned Solution...................................................................................................................... 26

5. Current Progress ...................................................................................................................................... 27

Page 28: V-mail for the OLPC - University of Victoriaweb.uvic.ca/~masaya/files/SENG499_Final_Report.pdf · University of Victoria Faculty of Engineering SENG 499 / ELEC 499 / CENG 499 Terry

Appendix A Progress Report # 1

1. PROJECT INFORMATION

Project Title: Video Mail for the OLPCProject Number: 7

Personnel:- Terry Bourgeois ([email protected]) V00221938- Benny Wijoyo ([email protected]) V00196976- Masaya Tamashiro ([email protected]) V00243562

Faculty Supervisor: Dr. Jens Weber ([email protected])Team Contact: Terry Bourgeois ([email protected])

Page 29: V-mail for the OLPC - University of Victoriaweb.uvic.ca/~masaya/files/SENG499_Final_Report.pdf · University of Victoria Faculty of Engineering SENG 499 / ELEC 499 / CENG 499 Terry

Appendix A Progress Report # 1

23 | P a g e

2. SUMMARY

The goal of the “Video Mail for the OLPC” project is to develop an extremely simplified computer messaging system. This system is intended for the elderly, who may have limited or no computer experience, or for sick patients residing in a hospital or in a hospice who may have difficulty with “typical” computer interfaces. The OLPC Project’s “XO-1” hardware (Figure 15: The XO-1 Hardware), provides many unique features in an extremely low-cost package. The “Video Mail for the OLPC” system will allow the X0-1 to be used in its’ “tablet” mode: folded so that the keyboard is hidden, exposing only the screen, the built-in camera and microphone, and some simple control buttons. Users will be able to record short video messages of themselves with just a few button presses, and send them to friends and family, who can then view them at their convenience. Users will also be able to receive similarly recorded video messages from their loved ones, which will be downloaded automatically by the system. In addition, users will be able to receive regular email messages from any email service. The system will automatically download these messages as well, including any photo attachments, and display them in an easy-to-use interface. With simplicity as the main goal, the “Video Mail for the OLPC” team hopes to create a system which will allow people to keep in touch in new and interesting ways.

FIGURE 15: THE XO-1 HARDWARE

Page 30: V-mail for the OLPC - University of Victoriaweb.uvic.ca/~masaya/files/SENG499_Final_Report.pdf · University of Victoria Faculty of Engineering SENG 499 / ELEC 499 / CENG 499 Terry

Appendix A Progress Report # 1

24 | P a g e

3. PROPOSED MILESTONES

The following milestones have been agreed to by all members of the project team.

February 2nd:

- Initial version of the project website is created.- Full requirements, use cases and UI designs/concepts are finalized. - Proposed UML is created and fully documented.

February 16th:

- Code repository for the project is created.- A basic template (skeleton) is created for each of the classes.- The code for video recording is done and integrated with the project.

February 27th:

- The code to send and receive mail and video is completed- Progress report 2 is completed.- The basis for the final report is created.

March 2nd:

- Basic UI is created and integrated with the project.- The code to setup the machine (email setup and receiver lists) along with its UI are completed.

March 6th:- Report for IDC Challenge is completed (if possible).

March 16th:- The code to display the email content (text, picture and video) is integrated with the system.- Notification for each email received is created.

March 20th:- All the components of the project are done and fully integrated.- The system is tested for possible errors.

March 25th: - Errors found are fixed.

Page 31: V-mail for the OLPC - University of Victoriaweb.uvic.ca/~masaya/files/SENG499_Final_Report.pdf · University of Victoria Faculty of Engineering SENG 499 / ELEC 499 / CENG 499 Terry

Appendix A Progress Report # 1

25 | P a g e

- Outstanding issues that cannot be fixed and unfinished components are fully documented.

March 27th:- Posters are created and presentation is prepared.- Presentation for IEEE is prepared (if it is decided that we will participate).- Website is finalized with all the updated contents.

April 3rd: - Final Report is completed.

Page 32: V-mail for the OLPC - University of Victoriaweb.uvic.ca/~masaya/files/SENG499_Final_Report.pdf · University of Victoria Faculty of Engineering SENG 499 / ELEC 499 / CENG 499 Terry

Appendix A Progress Report # 1

26 | P a g e

4. DETAILS OF PLANNED SOLUTION

In addition to the Proposed Milestones detailed above, the following details regarding the project’s development have been established:

The solution will be developed using the Python programming language. Google’s Gmail will be used as the preferred email backbone service for the system. Development will be done mostly in Windows, using an emulated version of the XO-1’s software.

running on a VMWare Player emulator. Testing will be performed on genuine XO-1 hardware provided by the SENG Technical Support Staff.

Below is a brief outline describing roughly how the development work will be divided (it should be noted that this is very preliminary and is subject to change):

Masaya: Website/Presentation/Email System Interface/Video and Audio Recording

Benny: User Interface/Notification/Predefined Messages/Video and Audio Recording

Terry: Message Playback/Video and Audio Recording/Reports

Page 33: V-mail for the OLPC - University of Victoriaweb.uvic.ca/~masaya/files/SENG499_Final_Report.pdf · University of Victoria Faculty of Engineering SENG 499 / ELEC 499 / CENG 499 Terry

Appendix A Progress Report # 1

27 | P a g e

5. CURRENT PROGRESS

As of the writing of this report (January 23, 2009), the following steps have been completed by the project team:

Met with our faculty supervisor, Dr. Jens Weber to establish a suitable project. Generated some informal use case scenarios, to better understand the project’s scope. Became acquainted with the XO-1 Hardware. Met with the SENG 499 T.A. Scott Miller, as he is well versed with XO-1 development.

It should be noted that 2/3 of the development team have been sick in this pre-development period of the project, which has delayed the initiation of the project. Nevertheless, the Proposed Milestones outlined in section 3 still remain valid.

Page 34: V-mail for the OLPC - University of Victoriaweb.uvic.ca/~masaya/files/SENG499_Final_Report.pdf · University of Victoria Faculty of Engineering SENG 499 / ELEC 499 / CENG 499 Terry

Appendix B Progress Report # 2

APPENDIX B PROGRESS REPORT # 2

University of VictoriaFaculty of EngineeringSENG/ELEC/CENG 499

V-MAIL FOR THE OLPC

February 27, 2009

Terry Bourgeois ([email protected])Masaya Tamashiro ([email protected])

Benny Wijoyo ([email protected])

Page 35: V-mail for the OLPC - University of Victoriaweb.uvic.ca/~masaya/files/SENG499_Final_Report.pdf · University of Victoria Faculty of Engineering SENG 499 / ELEC 499 / CENG 499 Terry

Appendix B Progress Report # 2

29 | P a g e

TABLE OF CONTENTS

1. Project Information ................................................................................................................................. 22

2. Summary.................................................................................................................................................. 23

3. Proposed Milestones ............................................................................................................................... 24

4. Details of Planned Solution...................................................................................................................... 26

5. Current Progress ...................................................................................................................................... 27

Page 36: V-mail for the OLPC - University of Victoriaweb.uvic.ca/~masaya/files/SENG499_Final_Report.pdf · University of Victoria Faculty of Engineering SENG 499 / ELEC 499 / CENG 499 Terry

Appendix B Progress Report # 2

1 PROJECT INFORMATION

Project Title: Video Mail for the OLPCProject Number: 7

Personnel:- Terry Bourgeois ([email protected]) V00221938- Benny Wijoyo ([email protected]) V00196976- Masaya Tamashiro ([email protected]) V00243562

Faculty Supervisor: Dr. Jens Weber ([email protected])Team Contact: Terry Bourgeois ([email protected])

Page 37: V-mail for the OLPC - University of Victoriaweb.uvic.ca/~masaya/files/SENG499_Final_Report.pdf · University of Victoria Faculty of Engineering SENG 499 / ELEC 499 / CENG 499 Terry

Appendix B Progress Report # 2

31 | P a g e

7 SUMMARY

The goal of the “Video Mail for the OLPC” project is to develop an extremely simplified computer messaging system. This system is intended for the elderly, who may have limited or no computer experience, or for sick patients residing in a hospital or in a hospice who may have difficulty with “typical” computer interfaces. The OLPC Project’s “XO-1” hardware (Figure 15: The XO-1 Hardware), provides many unique features in an extremely low-cost package. The “Video Mail for the OLPC” system will allow the X0-1 to be used in its’ “tablet” mode: folded so that the keyboard is hidden, exposing only the screen, the built-in camera and microphone, and some simple control buttons. Users will be able to record short video messages of themselves with just a few button presses, and send them to friends and family, who can then view them at their convenience. Users will also be able to receive similarly recorded video messages from their loved ones, which will be downloaded automatically by the system. In addition, users will be able to receive regular email messages from any email service. The system will automatically download these messages as well, including any photo attachments, and display them in an easy-to-use interface. With simplicity as the main goal, the “Video Mail for the OLPC” team hopes to create a system which will allow people to keep in touch in new and interesting ways.

FIGURE 16: THE XO-1 HARDWARE

Page 38: V-mail for the OLPC - University of Victoriaweb.uvic.ca/~masaya/files/SENG499_Final_Report.pdf · University of Victoria Faculty of Engineering SENG 499 / ELEC 499 / CENG 499 Terry

Appendix B Progress Report # 2

32 | P a g e

2 OTHER RELATED INFORMATION

Primary Programming Language: PythonRequired Libraries: ClientForm 0.2.10

mechanize 0.1.10libgmail 0.1.11

Google Code Repository: http://code.google.com/p/video-mail-for-the-olpc/Team Website: http://web.uvic.ca/~masaya/OLPC OS Version used for testing: Build 656Development Environment: Windows XP/Vista, emulating the OLPC OS via VMWare Player

Page 39: V-mail for the OLPC - University of Victoriaweb.uvic.ca/~masaya/files/SENG499_Final_Report.pdf · University of Victoria Faculty of Engineering SENG 499 / ELEC 499 / CENG 499 Terry

Appendix B Progress Report # 2

33 | P a g e

6. PROPOSED MILESTONES

The following milestones have been agreed to by all members of the project team.

February 2nd:

- Initial version of the project website is created.- Full requirements, use cases and UI designs/concepts are finalized. - Proposed UML is created and fully documented.

February 16th:

- Code repository for the project is created.- A basic template (skeleton) is created for each of the classes.- The code for video recording is done and integrated with the project.

February 27th:

- The code to send and receive mail and video is completed- Progress report 2 is completed.- The basis for the final report is created.

March 2nd:

- Basic UI is created and integrated with the project.- The code to setup the machine (email setup and receiver lists) along with its UI are completed.

March 6th:- Report for IDC Challenge is completed (if possible).

March 16th:- The code to display the email content (text, picture and video) is integrated with the system.- Notification for each email received is created.

March 20th:- All the components of the project are done and fully integrated.- The system is tested for possible errors.

March 25th: - Errors found are fixed.

Page 40: V-mail for the OLPC - University of Victoriaweb.uvic.ca/~masaya/files/SENG499_Final_Report.pdf · University of Victoria Faculty of Engineering SENG 499 / ELEC 499 / CENG 499 Terry

Appendix B Progress Report # 2

34 | P a g e

- Outstanding issues that cannot be fixed and unfinished components are fully documented.

March 27th:- Posters are created and presentation is prepared.- Presentation for IEEE is prepared (if it is decided that we will participate).- Website is finalized with all the updated contents.

April 3rd: - Final Report is completed.

Page 41: V-mail for the OLPC - University of Victoriaweb.uvic.ca/~masaya/files/SENG499_Final_Report.pdf · University of Victoria Faculty of Engineering SENG 499 / ELEC 499 / CENG 499 Terry

Appendix B Progress Report # 2

35 | P a g e

3 DETAILS OF PLANNED SOLUTION

In addition to the Proposed Milestones detailed above, the following details regarding the project’s development have been established:

The solution will be developed using the Python programming language. Google’s Gmail will be used as the preferred email backbone service for the system. Development will be done mostly in Windows, using an emulated version of the XO-1’s software.

running on a VMWare Player emulator. Testing will be performed on genuine XO-1 hardware provided by the SENG Technical Support Staff.

Below is a brief outline describing roughly how the development work will be divided (it should be noted that this is very preliminary and is subject to change):

Masaya: Website/Presentation/Email System Interface/Video and Audio Recording

Benny: User Interface/Notification/Predefined Messages/Video and Audio Recording

Terry: Message Playback/Video and Audio Recording/Reports

Page 42: V-mail for the OLPC - University of Victoriaweb.uvic.ca/~masaya/files/SENG499_Final_Report.pdf · University of Victoria Faculty of Engineering SENG 499 / ELEC 499 / CENG 499 Terry

Appendix B Progress Report # 2

36 | P a g e

4 CURRENT PROGRESS

As of the writing of this report (January 23, 2009), the following steps have been completed by the project team:

Met with our faculty supervisor, Dr. Jens Weber to establish a suitable project. Generated some informal use case scenarios, to better understand the project’s scope. Became acquainted with the XO-1 Hardware. Met with the SENG 499 T.A. Scott Miller, as he is well versed with XO-1 development.

It should be noted that 2/3 of the development team have been sick in this pre-development period of the project, which has delayed the initiation of the project. Nevertheless, the Proposed Milestones outlined in section 3 still remain valid.