Git Product home page Git Product logo

primeroims / primero Goto Github PK

View Code? Open in Web Editor NEW
48.0 13.0 56.0 197.16 MB

Primero is an application designed to help child protection workers and social workers in humanitarian and development contexts manage data on vulnerable children and survivors of violence. Please carefully read our LICENSE. If you would like access to the CPIMS+ and GBVIMS+ configurations, please contact: [email protected]

Home Page: https://www.primero.org

License: Other

Ruby 44.72% JavaScript 53.14% HTML 0.18% CSS 1.21% Shell 0.33% Dockerfile 0.12% Python 0.28% Jinja 0.01%

primero's Introduction

Primero

Build Status

Warning

Primero v2.10 adds support for PostgreSQL 15! Support for PostgreSQL 14 is retained and remains the default when running using Ansible/Docker Compose. Please use this opportunity to upgrade! PostgreSQL 15 will be the default starting with Primero v2.11, and support for PostgreSQL 10 and 11 will be dropped. Support for PostgreSQL 14 will be eventually dropped in future releases. See here for a recommended upgrade process.

Development

A guide to getting started with Primero development is available here.

Notes

  • It is known that a few npm packages will throw a requires a peer of warning. Examples: Mui-datatables is behind on updating dependecies. Jsdom requires canvas, but we are mocking canvas. Canvas also requires extra packages on alpine, which is the reason for mocking canvas.

Contributing

  • If contributing to the UI, make sure to read over the UI/UX Development documents.
  • If you are contributing via the DAO, make sure to read the relevant documents here.

Production

Primero is deployed in production using Docker. Detailed Docker instructions exist in the file docker/README.md

primero's People

Contributors

aespinoza-quoin avatar awensaunders avatar bteeman-quoin avatar cchavez avatar chrisgeorge avatar dhernandez-quoin avatar duelinmarkers avatar farismosman avatar gitdivyanshu avatar gpadgettquoin avatar jackmiszencin avatar jasper-lyons avatar jennifersmith avatar jeyakar avatar jgutierr-quoin avatar josh-quoin avatar jtoliver-quoin avatar kavitharajagopalan avatar kishoreyekkanti avatar matt-quoin avatar moredip avatar mtaylortw avatar pnabutovsky avatar quoininc-huudatran avatar raymondyan avatar rdsubhas avatar relledge avatar sancharigr avatar stanx12 avatar vivihuang avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

primero's Issues

Cookbook's CouchDB version has security vulns?

Hi all,

While I have virtually no experience with Chef (nor web app deployments whatsoever), I noticed that primer's Berksfile points to https://github.com/Quoin/couchdb-cookbook.git, which in turn is an outdated fork of https://github.com/wohali/couchdb-cookbook.

My concern is that Quoin's cookbook sets 'src_version' to 1.5.0, whereas wohali's sets it to 2.1.1. I've seen some published exploits targetting these versions, so I believe primero should at least try to use wohali's cookbook instead, which in turn should also be updated.

In any case, I don't know whether chef will use the system's package manager by default instead of building from source. I believe Ubuntu 16.04 will download version 1.6.

Ordering of Forms in side panel on v1.7

Dear Team,

I hope this finds you well.
We are running 1.7 at the moment. We want to inquire, Is there any way of ordering the main form and subforms within a form ?

It can be seen from the picture, the forms under "Basic Identity/ Registration" are in following order

Screenshot 2021-05-03 at 9 47 01 PM

Is there a way i can define the order of these subforms ? For Example if I want Basic Information to come right after Basic Identity, Can I do that by any default option on primero ? If not, What would be the most suitable way of doing that ? Similarly can I do the same on Main Forms as well instead of Subforms ?

A response on this would be really appreciated.

Regards,
Talal

Field Validation on the frontend

On Primero 2.0 all the front end form fields are validated in the back end, after the save button is pressed and then the feedback/errors are populated at the bottom of the form. When the user has edited multiple forms, this poses an issue, as the errors for the prior forms get aggregated after validation, and get displayed at the bottom of the form the user is currently editing.

This problem can be alleviated by adding validation to some of the front-end fields. For instance, child's age bracket validation can be done on spot, it shouldn't have to be sent to the back-end for validation.

We would like to know if this is possible on V2, if so, what is the recommended method for adding those field validations, and where do we add them. Another thing we would like to know is how can we make the errors pop up immediately while the user is still in the relevant form. We would like to make these changes forward compatible as to not break the functionality when we inevitably migrate to a newer version, say 2.3.

Conditional Fields

Primero lacks the support for conditional fields. That is to say, we can not conditionally make a field render, depending on the user choices in the previous field, say a checkbox or radio buttons. We would like to know the recommended method for adding this functionality across the application. We want to refrain from adding the functionality manually to each field where this is required.

About the project architecture and view

Due to the complexity of the project, I would like to know if there is something about the project architecture and view.
Where can I find something about the project architecture and view?

Enhancements in New Tracing Requests

Steps to reproduce:

  1. Click on Tracing Request and then click on New
  2. Fill the form of an Inquirer

Issues :

  1. While creating a new request the date in Calendar should start from this year. Not in the past years.
  2. Age can not be negative. There should be a minimum age value

Screenshot from 2020-03-23 23-15-24

For Nationality, Ethnicity and Religion we have dummy data in the dropdown. Is that data supposed to be replaced via fetching data from an API or can I add data?

Screenshot from 2020-03-23 23-20-04

Problem with a preseeded admin account credentials

Hello Team.

I have tried to be able to log in with the primero/primer0! credentials, but it tells me they are incorrect. Is there any way to create an admin account in the terminal or are there any new credentials?

Difficulties with installation

Attempting to run a local instance of primero on my macbook following guidance of the README:

I run ./compose.local.sh run solr make-primero-core.sh primero-test from the docker folder.

and I get this response:

(base) Andres-MacBook-Pro:docker andre$ ./compose.local.sh run solr make-primero-core.sh primero-test
allexport off
braceexpand on
emacs off
errexit on
errtrace off
functrace off
hashall on
histexpand off
history off
ignoreeof off
interactive-comments on
keyword off
monitor off
noclobber off
noexec off
noglob off
nolog off
notify off
nounset on
onecmd off
physical off
pipefail off
posix on
privileged off
verbose off
vi off
xtrace off

  • exec ./compose.sh -f docker-compose.local.yml run solr make-primero-core.sh primero-test
    allexport off
    braceexpand on
    emacs off
    errexit on
    errtrace off
    functrace off
    hashall on
    histexpand off
    history off
    ignoreeof off
    interactive-comments on
    keyword off
    monitor off
    noclobber off
    noexec off
    noglob off
    nolog off
    notify off
    nounset on
    onecmd off
    physical off
    pipefail off
    posix on
    privileged off
    verbose off
    vi off
    xtrace off
  • exec docker-compose -p primero --project-directory ../ -f docker-compose.yml -f docker-compose.local.yml run solr make-primero-core.sh primero-test
    Pulling solr (primero/solr:latest)...
    ERROR: pull access denied for primero/solr, repository does not exist or may require 'docker login': denied: requested access to the resource is denied

Installation issue

Unable to start docker production and development mode. It does not work as expected at all

Automatically show the user which form should be filled next

Dear Team,

I hope this finds you well.
We are running 1.7 at the moment. We want to inquire that we are facing another issue regarding the redirection of forms. Is there a way we can automatically show the user which form should be filled next? E.g. a user fills in a form called Eligibility Check after which he can be guided to fill in the next form called Significant Harm Check.
We would highly appreciate your response on this.
Regards

Determining the case stage at which the user is currently at.

Dear Team,

I hope this finds you well.
We are running 1.7 at the moment. We want to inquire that if user is in registration phase, is there a mechanism within the Primero system that can indicate what stage the user is at currently i.e. which phase the user has completed and which phases are still to cover?

Your quick response on this will be highly appreciated.
Thanks and Regards

Production Docker image documentation

Hello ๐Ÿ‘‹,
I'm trying to configure a cloud instance of Primero into an Azure App Service using the primeroims/application image available on DockerHub. The environment variables I'm using are:

APP_SHARE_DIR: /share/public
DEVISE_JWT_SECRET_KEY: <random token>
DEVISE_SECRET_KEY: <random token>
LOCALE_ALL: en,es
LOCALE_DEFAULT: en
PRIMERO_HOST: <deployed hostname>
PRIMERO_MESSAGE_SECRET: <random token>
PRIMERO_SECRET_KEY_BASE: <random token>
POSTGRES_HOSTNAME: <postgres hostname>
POSTGRES_DATABASE: <postgres database>
POSTGRES_USER: <postgres user>
POSTGRES_PASSWORD: <postgres password>
POSTGRES_POOL_NUM: 10
POSTGRES_SSL_MODE: require
SOLR_HOSTNAME: <solr ip address>

I'm able to get the image running, but it's missing some key assets (most assets under public/). It looks like the public folder is mounted in the Nginx container in development mode.

How should this application be deployed in a production environment? Can the primeroims/application image be used on its own like this? If not, do you have a kubernetes configuration?

Thanks!
Chris

Docker not start

I'm trying to run it via Docker but when I'm trying to run the command

Command : ./compose.local.sh run solr make-primero-core.sh primero-test

i got message sback

allexport      	off
braceexpand    	on
emacs          	off
errexit        	on
errtrace       	off
functrace      	off
hashall        	on
histexpand     	off
history        	off
ignoreeof      	off
interactive-comments	on
keyword        	off
monitor        	off
noclobber      	off
noexec         	off
noglob         	off
nolog          	off
notify         	off
nounset        	on
onecmd         	off
physical       	off
pipefail       	off
posix          	on
privileged     	off
verbose        	off
vi             	off
xtrace         	off
+ exec ./compose.sh -f docker-compose.db.yml -f docker-compose.local.yml run solr make-primero-core.sh primero-test
allexport      	off
braceexpand    	on
emacs          	off
errexit        	on
errtrace       	off
functrace      	off
hashall        	on
histexpand     	off
history        	off
ignoreeof      	off
interactive-comments	on
keyword        	off
monitor        	off
noclobber      	off
noexec         	off
noglob         	off
nolog          	off
notify         	off
nounset        	on
onecmd         	off
physical       	off
pipefail       	off
posix          	on
privileged     	off
verbose        	off
vi             	off
xtrace         	off
+ exec docker-compose -p primero --project-directory ../ -f docker-compose.yml -f docker-compose.db.yml -f docker-compose.local.yml run solr make-primero-core.sh primero-test
Executing /opt/docker-solr/scripts/precreate-core primero-test /solr-primero-config
Core primero-test already exists

and Docker Status just " Exited "

Extremely Outdated Production Deployment Procedures and Documentation

Hello,

The offical way of production grade deployment of the primero is EXTREMELY outdated.

ChefDK, which is the main tool for deployment, is deprecated. Check the Deprecated Products section on official site.

Screenshot from 2020-10-22 21-28-30

Knife-solo is also deprecated. Check it's readme;

DEPRECATED

This gem has officially fallen too far behind the curve of current Chef releases & workflows.

Please consider using https://knife-zero.github.io/, ansible, or visit https://www.chef.io/ for other ideas.

Official recommended OS for the deployments is Ubuntu 16.04 which has an End-of-Life date in 6 months.

Besides all of these, VirtualBox and Vagrant usage is in constant fall against Docker and Kubernetes. Nobody wants to keep entire OS for an application nowadays.

And for last, (I didn't tested or check but) #20 mentions about a security issues for CoachDB cookbook.

I would like to help the project to update deployment procedures and documentation.

What do you think about those issues and what "modern" deployment strategy would you prefer to update the project? I would like to hear from you.

This is a great project and I wouldn't want see it dead just because of lack of maintainance for deployment procedures.

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.