Giter VIP home page Giter VIP logo

elmo's Introduction

ELMO

ELMO is a mobile data collection and analysis web application. Originally designed for the Carter Center for election observation missions, ELMO can be used in many different contexts for data collection.

Consider ELMO if you need:

  • Integrated form design
  • Standardized form sets
  • Multiple data entry paths, including web, ODK Collect, and SMS
  • Multiple mission/project management
  • Advanced user management with multiple permission levels
  • SMS broadcasting
  • Custom, real-time reporting

To learn more about the history and goals of the project, visit the ELMO project site. You can also learn more about The Carter Center's Election Standards here.

Installation

For production scenarios, Sassafras Tech Collective offers managed production instances. Contact them for details. Or you can follow this guide to setup an instance on an Ubuntu server.

To setup a development environment, follow this guide.

How Do I Contribute to ELMO?

ELMO is 100% open-source. We would like you to be part of the ELMO community! We accept and encourage contributions from the public. You can start by filing a bug report or feature request using the 'Issues' feature on Github. Or contact Tom Smyth for more info.

ELMO Data Model

Contributors may find our auto-generated Entity-Relationship Diagram (ERD) useful. You can generate it by running rake db:migrate if adding new migrations or rake erd to run on its own. To skip running it when doing migrations run NO_DIAGRAM=1 rake db:migrate

Contributing

  1. Clone the Repo
git clone https://github.com/thecartercenter/elmo.git
  1. Create a New Branch
cd elmo
git checkout -b my_new_branch
  1. Code
  • Adhere to common conventions in the existing code
  • Include tests and make sure they pass
  1. Commit
  • NEVER leave the commit message blank! Provide a detailed, clear, and complete description of your commit!
  • If you have several commits, please make sure that they are squashed into one commit with a good summarizing commit message before pushing.
  1. Update Your Branch
git checkout master
git pull --rebase
  1. Fork
git remote add mine [email protected]:<username>/elmo.git
  1. Push to Your Remote
git push mine new_elmo_branch
  1. Issue a Pull Request
  • Navigate to the ELMO repo you pushed to (e.g. https://github.com/username/elmo)
  • Click "Pull Request"
  • Write your branch name in the field (filled with "master" by default)
  • Click "Update Commit Range"
  • Verify the changes are included in the "Commits" tab
  • Verify that the "Files Changed" include all your changes
  • Enter details about your contribution with a meaningful title.
  • Click "Send pull request"
  1. Feedback

The ELMO team may request changes to your code. Learning and communication is part of the open source process!

Acknowledgements

Parts of this document are based on the Discourse Project contribution guide at https://github.com/discourse/discourse/blob/master/CONTRIBUTING.md.

elmo's People

Contributors

emitche avatar evilgmonkey avatar linesarefuzzy avatar lmatiolis avatar mapmeld avatar md5 avatar meltheadorable avatar mkuklis avatar rgalusca avatar rubyconsumer avatar rubygeek avatar smoyte avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.