Stage 2 Activities/2.3 OpenMRS

From Foss2Serve
(Difference between revisions)
Jump to: navigation, search
(OpenMRS SDK)
m (Add category)
 
(47 intermediate revisions by 6 users not shown)
Line 1: Line 1:
 
= Planning for HFOSS Participation =
 
= Planning for HFOSS Participation =
Workshop Participants: James W, Jeff W. Lori P, James M, Darci B, Patti O, Karl W, Camm
+
Workshop Participants: Chris, Shamsi, Barrett, Kiran, Steve, Ruby, Darci
 +
 
 +
[http://foss2serve.org/index.php/Stage_2_Activities/2.3_OpenMRS_2014-05 May 2014 POSSE notes]
  
 
== Planning Stage 3 Activities ==
 
== Planning Stage 3 Activities ==
 
===Meetings===
 
===Meetings===
Meet on the 2nd Thursday of each month 3:00-4:00 via Google Hangout
+
1:00PM EST on the 2nd Friday of the month via IRC using the foss2serve channel
 +
 
 +
====Meeting Logs====
 +
 
 +
December 12, 2014 1pm IRC Meeting -- [http://meetbot.fedoraproject.org/foss2serve/2014-12-12/foss2serve.2014-12-12-18.04.log.html Complete Meeting Log] - [http://meetbot.fedoraproject.org/foss2serve/2014-12-12/foss2serve.2014-12-12-18.04.html Meeting Minutes]
 +
 
 +
January 16, 2015 1pm IRC Meeting -- [http://meetbot.fedoraproject.org/foss2serve/2015-01-16/foss2serve.2015-01-16-18.11.log.html Complete Meeting Log] - [http://meetbot.fedoraproject.org/foss2serve/2015-01-16/foss2serve.2015-01-16-18.11.html Meeting Minutes]
 +
 
 +
March 13, 2015 1pm IRC Meeting -- [http://meetbot.fedoraproject.org/foss2serve/2015-03-13/foss2serve.2015-03-13-17.04.log.html Complete Meeting Log] - [http://meetbot.fedoraproject.org/foss2serve/2015-03-13/foss2serve.2015-03-13-17.04.html Meeting Minutes]
 +
 
 +
'''Next Meeting Scheduled for April 10 -- 1PM via IRC'''
 +
 
 +
/attach irc.freenode.net
 +
 
 +
/join #foss2serve
 +
 
 +
== Please answer each of the following questions as it relates to your activity. ==
 +
'''1.''' Identify the course(s) the activity would be appropriate for.
 +
:We are focusing on the Android app for OpenMRS (OpenMRS Client)
 +
'''2.''' Briefly describe the activity.
 +
:Expose student to the OpenMRS Android client and have them reverse engineer the design of the module.
 +
'''3.''' How much time do you expect the HFOSS activity to take (# classes, # homework assignments, # lab activities, etc.)? Will the activity be completed in class or out of class?
 +
:3 class meetings to start. (75 minute classes)  plus a homework assignment (and it that produces a good artifact, the design, then students have to interact with the community to get it accepted). 
 +
:Followup in-class activity to create a single high-quality design document that incorporates all of their designs and can be contributed back.
 +
'''4.''' How does this activity relate to course goals/objectives?
 +
:Creating a design is a course objective.
 +
:They learn to evaluate a design based on standards for design.
 +
'''5.''' What will students submit upon completion of the activity?
 +
:This will include the architecture, UML of the structure (class diagrams).  Also analysis of design-related concepts: coupling, cohesion. Perhaps identifying design patterns.
 +
'''6.''' How will you assess the submission?
 +
:Completeness
 +
:Quality
 +
:Correct notation
 +
:Use of UML tools
 +
'''7.''' List any question or concerns you have about implementing your activity.
 +
:Prerequisite knowledge (Android). 
 +
:There are a variety of code-to-UML tools available; how do we know students won't use them?
 +
'''8.''' What type of support will you need to implement your activity?
 +
:Some android devices.  And we will probably tap into The Community.
 +
 
 +
===Activity Template===
 +
[http://foss2serve.org/index.php/OpenMRS_Design_Reverse_Engineering_Activity_(Android_App) Reverse Engineering Activity (Android App)]
  
All OpenMRS project meetings are on this calendar:
 
https://wiki.openmrs.org/rest/calendar-services/1.0/calendar/export/subcalendar/private/51e49e6ca2e9e9793ef17569673256d68f60159a.ics
 
 
===Specific Tasks===
 
===Specific Tasks===
*Darci , Jeff , Patti - Continue work on CS2_DataStructure activity
 
*James Mc - work with James W. to create a module for INF 128 (Principles of Informatics) course.  I am teaching this course fall 2014.  This is a general education course.  The purpose of module is to create a lecture session re: HFOSS and software development in general.
 
*,Ben C - Document and Share lessons learned from using OpenMRS in a senior projects course
 
*Karl W - OpenMRS immersion during fall 2014 sabbatical
 
===OpenMRS SDK===
 
#Install pre-requisites, include Java 1.7 and Maven.
 
#Download SDK from http://sourceforge.net/projects/openmrs/files/sdk/ (version 1.0.7)
 
#Run installer.
 
#Edit bin/omrs-run to change path argument to both calls to omrs-add-module from .. to .
 
  
'''Current error:''' Failed to execute goal org.apache.maven.plugins:maven-dependency-plugin:2.8:copy (deploy-to-server) on project openmrs-project-server: Unable to find artifact. Failure to find org.openmrs:openmrs-project-omod:jar:1.0.0 in http://mavenrepo.openmrs.org/nexus/content/repositories/public was cached in the local repository, resolution will not be reattempted until the update interval of openmrs-repo has elapsed or updates are forced
+
Darci has some homework to introduce OSS, for CS2 students, field trips to OSS sites.
 +
 
 +
Kiran has a group that meets weekly, see pointer below.
 +
 
 +
suggestion: take Darci's first activity (intro to OpenSource.org) and modify it for ourselves (and bring back to the group).
 +
 
 +
problem: we are already out of sync. And once work is done and posted, it's hard to repeat. But Chris will do it first off line, so ... we can repeat it later.  And we can do different modules.
 +
 
 +
== Resources ==
 +
Getting started as a developer: https://wiki.openmrs.org/display/docs/Getting+Started+as+a+Developer
 +
 
 +
OpenMRS code review guide: https://wiki.openmrs.org/display/docs/Code+Review
 +
 
 +
Android Client page, complete with developer contact info: https://wiki.openmrs.org/display/projects/OpenMRS+2.x+Android+Client
 +
 
 +
Codebase : https://github.com/openmrs/openmrs-contrib-android-client
 +
 
 +
Jira bugs: https://issues.openmrs.org/browse/AC/?selectedTab=com.atlassian.jira.jira-projects-plugin:summary-panel
 +
 
 +
https://wiki.openmrs.org/display/docs/Documentation+Playground
 +
 
 +
University Call where you can get more information about OpenMRS from core developers: https://wiki.openmrs.org/display/RES/OpenMRS+University
 +
 
 +
Use: https://www.writelatex.com/ to create/collaborate on assignments
 +
 
 +
OpenMRS 2.x Android Client wiki page: https://wiki.openmrs.org/display/projects/OpenMRS+2.x+Android+Client
 +
 
 +
Alternative Android virtual devices:
 +
 
 +
:Local simulator: http://www.genymotion.com
 +
 
 +
:Cloud simulator: http://www.manymo.com
 +
 
 +
===Setup Guide and Issues===
 +
 
 +
Installing OpenMRS android app in Eclipse
 +
1- Download/fork a copy from git
 +
2-Make sure you are using Android API 19 release
 +
3- Use 1.6 JDK 
 +
 
 +
Fixing the emulator hardware error :
 +
http://stackoverflow.com/questions/26355645/error-in-launching-avd
 +
 
 +
OpenMRS Android app troubleshooting guide
 +
 
 +
Symptom: cannot find appcompat.jar and/or gridlayout.jar and/or odk.collect.jar
 +
Solution: for DashboardActivity, open up "Properties" then "Android"; in the Library panel, remove the libraries that have a red X next to them; then click Add and add the appcompat, gridlayout, and/or odk.collect properties (you need all three)
  
 +
Symptoms: Eclipse complains that it cannot build the DashboardActivity app ("could not initialize class com.android.xml.AndroidXPathFactory"), and code cannot resolve class R
 +
Solution: revert from JDK 1.7 back to 1.6; I had to actually uninstall 1.7, not just use 1.6 in this project
  
'''Reference:''' http://en.flossmanuals.net/openmrs-developers-guide/get-set-up/
+
Symptom: NullPointerException in OpenMRS.onCreate
 +
Solution: make sure AVD has an SD card (I set mine to 1024MB)
  
===OpenMRS Developer Guide===
+
Symptom: tests will not compile; org.openmrs.client.utilities.DateUtils not found
https://wiki.openmrs.org/pages/viewpage.action?pageId=589846
+
Solution: add DashboardActivity project to build path
Getting set up
+
http://en.flossmanuals.net/openmrs-developers-guide/get-set-up/
+
===Links===
+
OpenMRS - Code of Conduct - https://wiki.openmrs.org/display/docs/Code+of+Conduct
+
  
 +
-------------
  
== Activity Planning Exercise ==
+
Running the OpenMRS Android app:
See [https://titanpad.com/OpenMRSgroup https://titanpad.com/OpenMRSgroup] for work in progress.
+
  
===Brainstorming===
+
When prompted for URL, enter:
*upper div and grad CS security courses. code review, penetration tests like [https://www.owasp.org/index.php/FLOSSHack_Returns FLOSSHack]
+
http://devtest02.openmrs.org:8080/openmrs
*introduce forest of computing to first semester fresh. in seminar course
+
*help with CS2 data structures course
+
*CS0/1 - mobile app class
+
*sabbatical HFOSS work
+
*OpenMRS for multiple courses:
+
**Capstone project
+
**Software Process artifacts
+
**Software Testing artifacts
+
  
===Questions===
+
Username: admin
# Identify the course(s) the activity would be appropriate for.
+
Password: Admin123
##CS2 Data Structures Project based on the work of Darci's student [https://github.com/marvinyan/openfe/blob/master/Examples%20of%20Data%20Structures.md Data Structure Example]
+
# Briefly describe the activity.
+
##Find use of a specified data structure in the OpenMRS code base using a tool like [http://geoff.greer.fm/2011/12/27/the-silver-searcher-better-than-ack/ Ag], explain the task that the data structure is used to accomplish, and explain why the data structure is a good or poor choice for accomplishing this task.
+
# How much time do you expect the HFOSS activity to take (# classes, # homework assignments, # lab activities, etc.)? Will the activity be completed in class or out of class?
+
##One homework assignment or lab activity.
+
# How does this activity relate to course goals/objectives?
+
##Describe the difference between a data structure and the implementation thereof.
+
##Explain the application of a data structure in a specific large complex software system
+
##Evaluate tradeoffs in selection of data structures.
+
##Analyze the time complexity of an algorithm that uses the data structure.
+
# What will students submit upon completion of the activity?
+
##A link to a place where the code is found in the codebase [1]
+
##A written description of the data structure used within the code and how the code works.
+
# How will you assess the submission?
+
##Students will get into groups of three and assess each other's work based on rubric provided by professor.
+
##Each group will provide a group response
+
##Each student will turn in the original response.
+
# List any question or concerns you have about implementing your activity.
+
##N/A
+
# What type of support will you need to implement your activity?
+
##Darci will provide all support.
+
  
 
==Notes==
 
==Notes==
[http://www.google-melange.com/gsoc/projects/list/google/gsoc2014 Google Summer of Code 2014 project list], search under organization for OpenMRS and 13 projects should appear
+
[https://titanpad.com/POSSE1411-openmrs TitanPad Notes ]
  
[1] You can link directly to a line (or line range) in the code in GitHub for a particular commit. For example, taking [https://github.com/marvinyan/openfe/blob/master/Examples%20of%20Data%20Structures.md  marvinyan's link to CohortSearchHistory.java] (which links to the  file  itself, in a particular commit - in this case commit  7b6e6e2f776aafc3ad397ab6430c77ed25a20857), you can add #L130-137 to the  end of the URL to link directly to (and to highlight) lines 130 through  137, i.e.:
+
[[Category:POSSE]]
https://github.com/openmrs/openmrs-core/blob/7b6e6e2f776aafc3ad397ab6430c77ed25a20857/api/src/main/java/org/openmrs/cohort/CohortSearchHistory.java#L130-137
+
The fact that it is in a particular commit (version) means that you don't have to worry about the code being changed in the future, and the  example code you are interested in going away or being changed.
+

Latest revision as of 16:11, 7 September 2015

Contents

Planning for HFOSS Participation

Workshop Participants: Chris, Shamsi, Barrett, Kiran, Steve, Ruby, Darci

May 2014 POSSE notes

Planning Stage 3 Activities

Meetings

1:00PM EST on the 2nd Friday of the month via IRC using the foss2serve channel

Meeting Logs

December 12, 2014 1pm IRC Meeting -- Complete Meeting Log - Meeting Minutes

January 16, 2015 1pm IRC Meeting -- Complete Meeting Log - Meeting Minutes

March 13, 2015 1pm IRC Meeting -- Complete Meeting Log - Meeting Minutes

Next Meeting Scheduled for April 10 -- 1PM via IRC

/attach irc.freenode.net

/join #foss2serve

Please answer each of the following questions as it relates to your activity.

1. Identify the course(s) the activity would be appropriate for.

We are focusing on the Android app for OpenMRS (OpenMRS Client)

2. Briefly describe the activity.

Expose student to the OpenMRS Android client and have them reverse engineer the design of the module.

3. How much time do you expect the HFOSS activity to take (# classes, # homework assignments, # lab activities, etc.)? Will the activity be completed in class or out of class?

3 class meetings to start. (75 minute classes) plus a homework assignment (and it that produces a good artifact, the design, then students have to interact with the community to get it accepted).
Followup in-class activity to create a single high-quality design document that incorporates all of their designs and can be contributed back.

4. How does this activity relate to course goals/objectives?

Creating a design is a course objective.
They learn to evaluate a design based on standards for design.

5. What will students submit upon completion of the activity?

This will include the architecture, UML of the structure (class diagrams). Also analysis of design-related concepts: coupling, cohesion. Perhaps identifying design patterns.

6. How will you assess the submission?

Completeness
Quality
Correct notation
Use of UML tools

7. List any question or concerns you have about implementing your activity.

Prerequisite knowledge (Android).
There are a variety of code-to-UML tools available; how do we know students won't use them?

8. What type of support will you need to implement your activity?

Some android devices. And we will probably tap into The Community.

Activity Template

Reverse Engineering Activity (Android App)

Specific Tasks

Darci has some homework to introduce OSS, for CS2 students, field trips to OSS sites.

Kiran has a group that meets weekly, see pointer below.

suggestion: take Darci's first activity (intro to OpenSource.org) and modify it for ourselves (and bring back to the group).

problem: we are already out of sync. And once work is done and posted, it's hard to repeat. But Chris will do it first off line, so ... we can repeat it later. And we can do different modules.

Resources

Getting started as a developer: https://wiki.openmrs.org/display/docs/Getting+Started+as+a+Developer

OpenMRS code review guide: https://wiki.openmrs.org/display/docs/Code+Review

Android Client page, complete with developer contact info: https://wiki.openmrs.org/display/projects/OpenMRS+2.x+Android+Client

Codebase : https://github.com/openmrs/openmrs-contrib-android-client

Jira bugs: https://issues.openmrs.org/browse/AC/?selectedTab=com.atlassian.jira.jira-projects-plugin:summary-panel

https://wiki.openmrs.org/display/docs/Documentation+Playground

University Call where you can get more information about OpenMRS from core developers: https://wiki.openmrs.org/display/RES/OpenMRS+University

Use: https://www.writelatex.com/ to create/collaborate on assignments

OpenMRS 2.x Android Client wiki page: https://wiki.openmrs.org/display/projects/OpenMRS+2.x+Android+Client

Alternative Android virtual devices:

Local simulator: http://www.genymotion.com
Cloud simulator: http://www.manymo.com

Setup Guide and Issues

Installing OpenMRS android app in Eclipse 1- Download/fork a copy from git 2-Make sure you are using Android API 19 release 3- Use 1.6 JDK

Fixing the emulator hardware error : http://stackoverflow.com/questions/26355645/error-in-launching-avd

OpenMRS Android app troubleshooting guide

Symptom: cannot find appcompat.jar and/or gridlayout.jar and/or odk.collect.jar Solution: for DashboardActivity, open up "Properties" then "Android"; in the Library panel, remove the libraries that have a red X next to them; then click Add and add the appcompat, gridlayout, and/or odk.collect properties (you need all three)

Symptoms: Eclipse complains that it cannot build the DashboardActivity app ("could not initialize class com.android.xml.AndroidXPathFactory"), and code cannot resolve class R Solution: revert from JDK 1.7 back to 1.6; I had to actually uninstall 1.7, not just use 1.6 in this project

Symptom: NullPointerException in OpenMRS.onCreate Solution: make sure AVD has an SD card (I set mine to 1024MB)

Symptom: tests will not compile; org.openmrs.client.utilities.DateUtils not found Solution: add DashboardActivity project to build path


Running the OpenMRS Android app:

When prompted for URL, enter: http://devtest02.openmrs.org:8080/openmrs

Username: admin Password: Admin123

Notes

TitanPad Notes

Personal tools
Namespaces
Variants
Actions
Events
Learning Resources
HFOSS Projects
Evaluation
Navigation
Toolbox