OpenMRS Design Reverse Engineering Activity (Android App)

From Foss2Serve
Revision as of 16:28, 15 November 2014 by Scrain (Talk | contribs)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search



Description Expose student to the OpenMRS Android client and have them reverse engineer the design of the module.
Source Darci Burdge, Steven P. Crain, Ruby ElKharboutly, Barrett Koster, Shamsi Moussavi, Chris Murphy
Prerequisite Knowledge Java, Android, UML
Estimated Time to Completion
Learning Objectives
  1. Evaluate an existing project and analyze its current documentation
  2. Read and understand professionally written code
  3. Appreciate the importance of code documentation and project documentation
  4. Develop software architecture and design documentation for an existing project
  5. Recognize coding conventions and design patterns
Materials/Environment Access to Internet, installed Eclipse with correct version
Turn In }



IDE installation

  1. Go to:
  2. At the bottom of the page choose the Get the SDK link.
  3. Click the Download the SDK ADT Bundle for Windows link.
  4. Extract the files from the .zip file downloaded in step #1.
  5. Go to: On the second part of #1, use API 19 instead of the most recent API available.
  1. The download and install take some time…be patient!!
  2. Once the download is complete, you can close the SDK Manager.
  1. You can follow the directions from - - to create an AVD.

Installing OpenMRS Android client

  1. Download the OpenMRS Android client as an Eclipse project [somewhere here]
  2. Import the project into Eclipse: File -> Import... -> Android -> Existing Android Code into Workspace -> then browse to the directory containing the Eclipse project that you downloaded
  3. The DashboardActivity project depends on the appcompat ,
Running the OpenMRS Android app:

When prompted for URL, enter: Username: admin Password: Admin123

Early Code Investigation

At this stage of the project I expect you to get an early sense of what the project is about. You should create a report that describes the following:

  • Total number of files, packages and package hierarchy
  • Coding convention and available documentation
  • Which classes are part of the Model component? the View? the Controller?
Personal tools
Learning Resources
HFOSS Projects