Coder Social home page Coder Social logo

dpgalliance / publicgoods-scripts Goto Github PK

View Code? Open in Web Editor NEW
3.0 3.0 6.0 19.12 MB

Scripts to generate static site from WordPress

Home Page: http://digitalpublicgoods.net

License: MIT License

JavaScript 72.15% Shell 1.04% CSS 10.81% HTML 12.26% Java 3.74%

publicgoods-scripts's People

Contributors

ainali avatar dependabot[bot] avatar edil-it-them avatar lacabra avatar law909 avatar nathanfletcher avatar prajectory avatar prashansasaxena avatar prashansatw avatar rachita19082 avatar ricardomiron avatar ruchiths avatar sfishel18 avatar

Stargazers

 avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

publicgoods-scripts's Issues

Select all / Deselect all functionality in registry's DPG filter

Select all / Deselect all

In the Registry home page, the current "select all" functionality doesn't function properly:

How does it work now?

Bug 1) If I deselect all (unselecting all types and SDGs), I then cannot add back individual items by selecting one by one.

Bug 2) If I leave "select all" enabled, and then uncheck each type in turn, then turning them back on does not restore the category to the list.

How it should work:

NEW feature: Select all and deselect all function should work separately both for DPG Types and SDGs. User should be able to select/deselect all of the types and also for SDGs.

When all is deselected, the selected item should return a result if there's a match. (Bugs mentioned above)

When all is selected, unselected items should be filtered out. (This works fine)

[Eligibility] Warning: Each child in a list should have a unique "key" prop.

Looking at the console while running the eligibility form in localhost I see the following error message:

Check the render method of `FAQ`. See https://fb.me/react-warning-keys for more information.
    in Fragment (created by FAQ)
    in FAQ (at Eligibility.js:339)
    in div (at Eligibility.js:338)
    in div (at Eligibility.js:270)
    in div (created by ForwardRef(Paper))
    in ForwardRef(Paper) (created by WithStyles(ForwardRef(Paper)))
    in WithStyles(ForwardRef(Paper)) (at Eligibility.js:269)
    in center (at Eligibility.js:261)
    in Eligibility (at src/index.js:8)

Cc: @rachita19082, @nathanfletcher

[Map] add navigation header and footer

For epic - Map Visualization

The map should be more tightly integrated with the DPGA website by embedding it in a page that has the header and footer matching the rest of the website.

Note
For the desktop version I suggest to reduce the size of the footer and keep it in the info container on the left side of the page.
footer

Breaking Changes in `sgds` JSON of API Structure of WebApp 2.0 deployment

Expected Behaviour:
Publicgoods-script successfully builds graph visualization on registry page of DPG website via GitHub Actions.

Trace:
Current breaking build log can be seen here

Why
Major Update to the API introduced a change in structure to the sdgs key of the API in the public goods review-web app
During the build of the registry page, key is responsible for graph visualization and some counting metrics.

eg Application ID 10216

Version 1.0 Structure for sdgs key

"sdgs": [
            {
                "sdg": "SDG4: Quality Education",
                "relevance": "TOAEP has been built to indefinitely provide free and immediate access to quality publications on international law to anyone with access to the Internet, regardless of their geographical location. TOAEP will remain non-profit and open access. As such, TOAEP is aligned with Goal 4 of the Sustainable Development Goals (‘SDGs’) (that is, it will “ensure inclusive and equitable quality education and promote lifelong learning opportunities for all”).,
 
TOAEP is directly aimed at Goal 16 of the SDGs (that is, to “promote peaceful and inclusive societies for sustainable development, provide access to justice for all and build effective, accountable and inclusive institutions at all levels”). By publishing open access international law information, including on international criminal law, TOAEP aims to equip individuals with the knowledge required to ensure that there is accountability for core international crimes in their societies, organisations and countries."
            },
            {
                "sdg": "SDG16: Peace¸ Justice and Strong Institutions",
                "relevance": "TOAEP has been built to indefinitely provide free and immediate access to quality publications on international law to anyone with access to the Internet, regardless of their geographical location. TOAEP will remain non-profit and open access. As such, TOAEP is aligned with Goal 4 of the Sustainable Development Goals (‘SDGs’) (that is, it will “ensure inclusive and equitable quality education and promote lifelong learning opportunities for all”).,
 
TOAEP is directly aimed at Goal 16 of the SDGs (that is, to “promote peaceful and inclusive societies for sustainable development, provide access to justice for all and build effective, accountable and inclusive institutions at all levels”). By publishing open access international law information, including on international criminal law, TOAEP aims to equip individuals with the knowledge required to ensure that there is accountability for core international crimes in their societies, organisations and countries."
            }
        ],

Version 2.0 Structure for sdgs key

"sdgs": {
            "sdg": [
                "SDG4: Quality Education",
                "SDG16: Peace¸ Justice and Strong Institutions"
            ],
            "relevance": "TOAEP has been built to indefinitely provide free and immediate access to quality publications on international law to anyone with access to the Internet, regardless of their geographical location. TOAEP will remain non-profit and open access. As such, TOAEP is aligned with Goal 4 of the Sustainable Development Goals (\u2018SDGs\u2019) (that is, it will \u201censure inclusive and equitable quality education and promote lifelong learning opportunities for all\u201d).,
 
TOAEP is directly aimed at Goal 16 of the SDGs (that is, to \u201cpromote peaceful and inclusive societies for sustainable development, provide access to justice for all and build effective, accountable and inclusive institutions at all levels\u201d). By publishing open access international law information, including on international criminal law, TOAEP aims to equip individuals with the knowledge required to ensure that there is accountability for core international crimes in their societies, organisations and countries."
        },

Update language in Eligibility Form based on Feedback Round 2

Make the following content-related changes in the Eligibility Form:

  • Intro Page Content - Remove “If you are a developer or owner of a digital solution that does good and is open to all, we welcome you to fill out this quick and easy form.”
  • Intro Page Content - Change from “If you are eligible” to “If your solution is eligible” in that entire section.
  • Question 2 Content - "Does it use an appropriate open source license?"

Unresolving fonts in static WordPress pull

After the script pulls the WordPress sites pages, part of the subsequent steps is to build packages/eligibility
That throws the following error in the build process

Error: Can't resolve '/wp-content/themes/dpga/font/NowAlt-Regular.woff' in '/home/runner/work/publicgoods-scripts/publicgoods-scripts/packages/eligibility/src'```

Questions/Recommendations for DPG Map

Just updated the map content & looking great. A few suggestions/questions below:

  1. For the side navigation bar
  • Can we remove "Pathfinders Exploratory" for now? I think we should only show existing pathfinders until discussions with those country offices / DPGs etc are final.
  • To fit with the above, adjust the title "Pathfinders Confirmed" to "DPG Pathfinders".
  • DPGs deployed & developed - please capitalize both "Deployed" and "Developed"
  • Can we add a "back" arrow that will navigate back to the cards?
  1. In the bottom corner of the side navigation bar there is a link titled "Data: Pathfinders and Story" which links to the google doc. Let's remove this from the public facing version.
  2. On the home screen, is it possible to reverse the up arrows to face down towards the next card?
  3. A larger question - is it possible to show a side navigation while also showing a card? (Eg. could we explain a DPG in a card and have their detailed information show on the side navigation?

Thanks so much!

[Map] Summary information and SDG layer for DPG Map

I would like to make some more improvements to the map visualization:

  • There is no summary information about DPGs on the entire website. I can add charts to the menu that will show how many DPGs are associated with each SDG and type. The summary information will be visible when nothing is selected like in the screenshot bellow.
    image

  • Add one more layer of visualization by SDGs. It'd be great to have an ability to select one of 17 SDGs from the dropdown and see how many DPGs are related to it. I think it'll be great to show it both on the map with colors (from light to dark depending on how many DPGs are deployed) and on side menu using barcharts with country names.

What do you think @SarahWat , @lacabra ?
cc: @nathanfletcher

[DPG Map] Sometimes DPGs are not loading

I looked into CI builds and found that sometimes DPG data is missing https://digitalpublicgoods.net/map/
My guess is that script fetches data through github search API which has some limits.
Suggestion
Need to change the way how we retrieve data here from fetch to fs.readdir and fs.readfile since we are cloning publicgoods-candidates repo on every build
path.join(process.cwd(), "../../../publicgoods-candidates/digitalpublicgoods");
path.join(process.cwd(), "../../../publicgoods-candidates/nominees");

Add Valid HTML ids to registry items.

Summary

Currently Digital Public Goods (DPGs) are published in a large list with no apparent way to link directly to a specific DPG. You need to link to the list itself and then navigate/search for a specific DPG. I propose adding in an html id tag to each of the items in the list of Digital Public Goods.

Justification

This will allow folks to link back to their Digital Public Good on the list. This will:

  • Validate that they actually are a digital public good.
  • Enable other DPGs to be discovered by folks who navigate to the registry.
  • Allow orgs to not need to duplicate data -- they can link here rather than duplicate it on their sites/github.

Details

It looks like this could be accomplished fairly simply by adding an id in the ListItem function in following file:
packages/registry/src/index.js which appears to be generating the registry. I suggest we use linkName as it is already a generated variable in the script and as it is based of the name it should be unique.

I think we can do this easily by swapping line 291 from:

<tr key={index} className={itemClass}>

to:

<tr key={index} id={linkName} className={itemClass}>

Other considerations

I'm under the assumption that names of DPGs are unique but if it is possible for a nominee and an approved good to have the same name and therefore the same generated linkName this could lead to an id collision.

Criteria for completion

  • Unique html id attribute is added to each DPG in the table.

Update Eligibility Form based on User Feedback

Update the following components of the Eligibility Form based on feedback received:

Content

  • Replace "project" with "product"
  • Use more definitive language
  • Update FAQ questions and answers
  • Update text on the Result page for product not eligible case

UX

  • Ensure all FAQ links open in the new tab

Select // Deselect

In the Registry home page, the current "select all" functionality doesn't function properly:
How does it work now?
Bug 1) If I deselect all (unselecting all types and SDGs), I then cannot add back individual items by selecting one by one.
Bug 2) If I leave "select all" enabled, and then uncheck each type in turn, then turning them back on does not restore the category to the list.
How it should work:

  1. NEW feature: Select all and deselect all function should work separately both for DPG Types and SDGs. User should be able to select/deselect all of the types and also for SDGs.
  2. When all is deselected, the selected item should return a result if there's a match. (Bugs mentioned above)
  3. When all is selected, unselected items should be filtered out. (This works fine)

Originally posted by @mlschechter in DPGAlliance/publicgoods-website#23 (comment)

Eligibility is not as simple as all YES

The current version of the eligibility form only counts a valid answer if it is answered Yes, but that is not correct.

For example, indicator 4 asks "Does the license of libraries/dependencies undermine the openess of the project?" and the correct answer here is No instead of Yes

Similarly, indicator 9 asks "Does the project do no harm" and the correct answer is No instead of Yes.

Furthermore, some of the questions around eligibility cannot be reduced to a simple Yes/No answer as it may depend. Please identify which questions are Yes/No (e.g. questions 1 and 2, are Yes/No, where the correct answer is Yes, and if they answer No, they are not eligible). For the rest of the questions identify what needs to happen for them to be eligible if they provide the "wrong" answer.

Note that question 4, if they answer No they are eligible, but if they answer Yes, they are also eligible IF they are able to demonstrate independence from closed components (see 3rd column on indicator 4 here).

From the discussion above, I envision that the summary should provide 3 end results: Yes, No and Maybe if certain conditions are met. The results page of the form should thus account for this.

@nathanbaleeta should be able to provide additional clarity around this.

Cc: @amreenp7

[Eligibility] Warning: validateDOMNesting(...): <p> cannot appear as a descendant of <p>.

Similar to #57, when looking at the console while running the eligibility form in localhost I see the following error message:

index.js:1 Warning: validateDOMNesting(...): <p> cannot appear as a descendant of <p>.
    in p (at quizQuestions.js:33)
    in p (at FAQ.js:11)
    in div (at FAQ.js:9)
    in div (at FAQ.js:6)
    in FAQ (at Eligibility.js:339)
    in div (at Eligibility.js:338)
    in div (at Eligibility.js:270)
    in div (created by ForwardRef(Paper))
    in ForwardRef(Paper) (created by WithStyles(ForwardRef(Paper)))
    in WithStyles(ForwardRef(Paper)) (at Eligibility.js:269)
    in center (at Eligibility.js:261)
    in Eligibility (at src/index.js:8)

Cc: @rachita19082, @nathanfletcher

Pass initial state onto submission form

If the project is deemed eligible, and the user clicks to make a submission, the answers to the nine questions that have been answered on the eligibility form should be transferred to the submission as the initial state (see this, this and this) of that form and notify the user accordingly (see this and this), similar to this other notification (see blue box at the top):

Screen Shot 2021-06-18 at 12 28 24 PM

FYI: @nathanbaleeta

Condense Eligibility Form layout

The information density on the current form is very low, and the font size is fairly large. Reconsider the layout and font size to fit more content in each of the first views for each question.

For larger screens than mobile, like desktop, condense the form such that the full question, possible answers, and an entire FAQ displays on screen without scrolling.

See link for reference, and how almost every step of this form fits in one screen

Text overlaps in roadmap column headers in Firefox

While Chromium-based browsers (and others like Safari) display all the information as expected, Firefox makes text overlap as captured in the screenshot below. This should be fixed so that the display is consistent across browsers.

Chrome:

Screen Shot 2021-09-24 at 11 34 56 AM

Firefox:

Screen Shot 2021-09-24 at 8 15 23 AM

Improve distribution by SDG data visualization

Right now in registry section users need to hover on rectangles in distribution by SDG chart to see the labels and values of data. Otherwise data visualization communicate too little information.
We can add labels of SDGs to chart. It'll improve UX and be more readable.
Current
Снимок

Suggestion
I suggest the following design. It's clear what these rectangles are about.
Group 10

Or even better
We can also add amount of nominees to each rectangle where it fits. We need a word nominee in the first rectangle to indicate what these numbers are about.
Frame 18

I can see that visualization is rendered in this repo so I opened issue here
@lacabra what do you think?

Improve data visualization in registry section

The current implementation of distribution by type diagram in Registry section uses circles. It is a bad pattern in data visualization. Let me explain.
When we visualize data with circles we need to calculate the area with weird for human mind formula A = πr², where A represents area (value of data), r - radius, π=3.1415. Because of r² and π it's hard for users to understand the dimensions and visually compare different circles.

Let's imagine a circle. Now try to imagine another one smaller twice.
Common answer is to reduce width(diameter) of circle twice, but it's wrong.
Frame 16

I suggest to use rectangles instead. This is why:
Frame 17

Current:
current type

Suggestion:
I suggest the following design. Note that dimensions are inaccurate.
Frame 15

Even better
Users don't need to hover if number fit the rectangle.
Frame 15

It will also better align with tree map design of distribution by SDG chart
I can see that visualization is rendered in this repo so I opened issue here
@lacabra what do you think?

[Map] Some images are broken after the Nextjs update

Reproduce

  1. Navigate to the visualization. I will see that loader logo is displayed incorrectly.
    image

  2. Add the image to the step in story and you will see an error
    image

If I add s3.amazonaws.com to the next.config.js there will be another error.

image

How to fix
Since we are using next/image we need to follow these rules.

  • Add images source domains to the next.config.js. I see that most images are located on s3.amazonaws.com. Are there any other links we should add? @lacabra @nathanfletcher
  • Fix images props in mapComponent.js.
  • import NextImage from next/image because Image is reserved for mapbox patterns

Add README to eligibility form package

What?

Add a README.md file to the packages/eligibility folder explaining what that folder contains, and provide an overview of the code and flow.

Why?

Add documentation geared to first-time contributors so that they can more easily navigate the codebase and be in a better position to contribute.

I know that the other packages are also missing it, but since this form is still in active development, it would be a good time to get it document it and serve as a model to document the other folders at a later date.

Cc: @amreenp7, @nathanfletcher

[Map] Final touches to make DPG map perfect

  • Add an ability to select one of the SDGs from google sppreadsheet
  • Add maximum height to 3d polygons for DPGs Deployed and DPGs Developed filters. It's important because in bright future when there will be more than a thousand of DPGs, bars may be bigger than window view-port.
  • Remove unused css
  • Refactor code where possible

GitHub Build Action Failing during Maven `run_tests`

During the build and deploy phase of the GitHub action auto.yml the Maven tests fail.

Below is the link to the actions log
https://github.com/DPGAlliance/publicgoods-scripts/actions/runs/5856799503/job/15877852577#step:4:1469

However, I have pasted below a more verbose log of the error when running it locally.
It seems to be a plugin/dependency issue from Lombok

[INFO] --------------< net.digitalpublicgoods:DPGAUIAutomation >---------------
[INFO] Building DPGAUIAutomation 1.0-SNAPSHOT
[INFO]   from pom.xml
[INFO] --------------------------------[ jar ]---------------------------------
[INFO] 
[INFO] --- resources:3.0.2:resources (default-resources) @ DPGAUIAutomation ---
[INFO] Using 'UTF-8' encoding to copy filtered resources.
[INFO] skip non existing resourceDirectory /publicgoods-scripts/TestAutomation/DPGAUIAutomation/src/main/resources
[INFO] 
[INFO] --- compiler:3.8.0:compile (default-compile) @ DPGAUIAutomation ---
[INFO] Changes detected - recompiling the module!
[INFO] Compiling 1 source file to /publicgoods-scripts/TestAutomation/DPGAUIAutomation/target/classes
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time:  3.565 s
[INFO] Finished at: 2023-08-14T16:28:08Z
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.8.0:compile (default-compile) on project DPGAUIAutomation: Fatal error compiling: java.lang.IllegalAccessError: class lombok.javac.apt.LombokProcessor (in unnamed module @0x1f9d4b0e) cannot access class com.sun.tools.javac.processing.JavacProcessingEnvironment (in module jdk.compiler) because module jdk.compiler does not export com.sun.tools.javac.processing to unnamed module @0x1f9d4b0e -> [Help 1]
org.apache.maven.lifecycle.LifecycleExecutionException: Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.8.0:compile (default-compile) on project DPGAUIAutomation: Fatal error compiling
    at org.apache.maven.lifecycle.internal.MojoExecutor.doExecute2 (MojoExecutor.java:333)
    at org.apache.maven.lifecycle.internal.MojoExecutor.doExecute (MojoExecutor.java:316)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:212)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:174)
    at org.apache.maven.lifecycle.internal.MojoExecutor.access$000 (MojoExecutor.java:75)
    at org.apache.maven.lifecycle.internal.MojoExecutor$1.run (MojoExecutor.java:162)
    at org.apache.maven.plugin.DefaultMojosExecutionStrategy.execute (DefaultMojosExecutionStrategy.java:39)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:159)
    at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:105)
    at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:73)
    at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build (SingleThreadedBuilder.java:53)
    at org.apache.maven.lifecycle.internal.LifecycleStarter.execute (LifecycleStarter.java:118)
    at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:261)
    at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:173)
    at org.apache.maven.DefaultMaven.execute (DefaultMaven.java:101)
    at org.apache.maven.cli.MavenCli.execute (MavenCli.java:906)
    at org.apache.maven.cli.MavenCli.doMain (MavenCli.java:283)
    at org.apache.maven.cli.MavenCli.main (MavenCli.java:206)
    at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0 (Native Method)
    at jdk.internal.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java:77)
    at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke (Method.java:568)
    at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced (Launcher.java:283)
    at org.codehaus.plexus.classworlds.launcher.Launcher.launch (Launcher.java:226)
    at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode (Launcher.java:407)
    at org.codehaus.plexus.classworlds.launcher.Launcher.main (Launcher.java:348)
Caused by: org.apache.maven.plugin.MojoExecutionException: Fatal error compiling
    at org.apache.maven.plugin.compiler.AbstractCompilerMojo.execute (AbstractCompilerMojo.java:1140)
    at org.apache.maven.plugin.compiler.CompilerMojo.execute (CompilerMojo.java:188)
    at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo (DefaultBuildPluginManager.java:126)
    at org.apache.maven.lifecycle.internal.MojoExecutor.doExecute2 (MojoExecutor.java:328)
    at org.apache.maven.lifecycle.internal.MojoExecutor.doExecute (MojoExecutor.java:316)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:212)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:174)
    at org.apache.maven.lifecycle.internal.MojoExecutor.access$000 (MojoExecutor.java:75)
    at org.apache.maven.lifecycle.internal.MojoExecutor$1.run (MojoExecutor.java:162)
    at org.apache.maven.plugin.DefaultMojosExecutionStrategy.execute (DefaultMojosExecutionStrategy.java:39)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:159)
    at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:105)
    at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:73)
    at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build (SingleThreadedBuilder.java:53)
    at org.apache.maven.lifecycle.internal.LifecycleStarter.execute (LifecycleStarter.java:118)
    at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:261)
    at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:173)
    at org.apache.maven.DefaultMaven.execute (DefaultMaven.java:101)
    at org.apache.maven.cli.MavenCli.execute (MavenCli.java:906)
    at org.apache.maven.cli.MavenCli.doMain (MavenCli.java:283)
    at org.apache.maven.cli.MavenCli.main (MavenCli.java:206)
    at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0 (Native Method)
    at jdk.internal.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java:77)
    at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke (Method.java:568)
    at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced (Launcher.java:283)
    at org.codehaus.plexus.classworlds.launcher.Launcher.launch (Launcher.java:226)
    at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode (Launcher.java:407)
    at org.codehaus.plexus.classworlds.launcher.Launcher.main (Launcher.java:348)
Caused by: org.codehaus.plexus.compiler.CompilerException: java.lang.IllegalAccessError: class lombok.javac.apt.LombokProcessor (in unnamed module @0x1f9d4b0e) cannot access class com.sun.tools.javac.processing.JavacProcessingEnvironment (in module jdk.compiler) because module jdk.compiler does not export com.sun.tools.javac.processing to unnamed module @0x1f9d4b0e
    at org.codehaus.plexus.compiler.javac.JavaxToolsCompiler.compileInProcess (JavaxToolsCompiler.java:173)
    at org.codehaus.plexus.compiler.javac.JavacCompiler.performCompile (JavacCompiler.java:174)
    at org.apache.maven.plugin.compiler.AbstractCompilerMojo.execute (AbstractCompilerMojo.java:1129)
    at org.apache.maven.plugin.compiler.CompilerMojo.execute (CompilerMojo.java:188)
    at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo (DefaultBuildPluginManager.java:126)
    at org.apache.maven.lifecycle.internal.MojoExecutor.doExecute2 (MojoExecutor.java:328)
    at org.apache.maven.lifecycle.internal.MojoExecutor.doExecute (MojoExecutor.java:316)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:212)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:174)
    at org.apache.maven.lifecycle.internal.MojoExecutor.access$000 (MojoExecutor.java:75)
    at org.apache.maven.lifecycle.internal.MojoExecutor$1.run (MojoExecutor.java:162)
    at org.apache.maven.plugin.DefaultMojosExecutionStrategy.execute (DefaultMojosExecutionStrategy.java:39)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:159)
    at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:105)
    at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:73)
    at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build (SingleThreadedBuilder.java:53)
    at org.apache.maven.lifecycle.internal.LifecycleStarter.execute (LifecycleStarter.java:118)
    at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:261)
    at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:173)
    at org.apache.maven.DefaultMaven.execute (DefaultMaven.java:101)
    at org.apache.maven.cli.MavenCli.execute (MavenCli.java:906)
    at org.apache.maven.cli.MavenCli.doMain (MavenCli.java:283)
    at org.apache.maven.cli.MavenCli.main (MavenCli.java:206)
    at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0 (Native Method)
    at jdk.internal.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java:77)
    at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke (Method.java:568)
    at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced (Launcher.java:283)
    at org.codehaus.plexus.classworlds.launcher.Launcher.launch (Launcher.java:226)
    at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode (Launcher.java:407)
    at org.codehaus.plexus.classworlds.launcher.Launcher.main (Launcher.java:348)
Caused by: java.lang.RuntimeException: java.lang.IllegalAccessError: class lombok.javac.apt.LombokProcessor (in unnamed module @0x1f9d4b0e) cannot access class com.sun.tools.javac.processing.JavacProcessingEnvironment (in module jdk.compiler) because module jdk.compiler does not export com.sun.tools.javac.processing to unnamed module @0x1f9d4b0e
    at com.sun.tools.javac.api.JavacTaskImpl.invocationHelper (JavacTaskImpl.java:168)
    at com.sun.tools.javac.api.JavacTaskImpl.doCall (JavacTaskImpl.java:100)
    at com.sun.tools.javac.api.JavacTaskImpl.call (JavacTaskImpl.java:94)
    at org.codehaus.plexus.compiler.javac.JavaxToolsCompiler.compileInProcess (JavaxToolsCompiler.java:126)
    at org.codehaus.plexus.compiler.javac.JavacCompiler.performCompile (JavacCompiler.java:174)
    at org.apache.maven.plugin.compiler.AbstractCompilerMojo.execute (AbstractCompilerMojo.java:1129)
    at org.apache.maven.plugin.compiler.CompilerMojo.execute (CompilerMojo.java:188)
    at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo (DefaultBuildPluginManager.java:126)
    at org.apache.maven.lifecycle.internal.MojoExecutor.doExecute2 (MojoExecutor.java:328)
    at org.apache.maven.lifecycle.internal.MojoExecutor.doExecute (MojoExecutor.java:316)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:212)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:174)
    at org.apache.maven.lifecycle.internal.MojoExecutor.access$000 (MojoExecutor.java:75)
    at org.apache.maven.lifecycle.internal.MojoExecutor$1.run (MojoExecutor.java:162)
    at org.apache.maven.plugin.DefaultMojosExecutionStrategy.execute (DefaultMojosExecutionStrategy.java:39)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:159)
    at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:105)
    at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:73)
    at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build (SingleThreadedBuilder.java:53)
    at org.apache.maven.lifecycle.internal.LifecycleStarter.execute (LifecycleStarter.java:118)
    at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:261)
    at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:173)
    at org.apache.maven.DefaultMaven.execute (DefaultMaven.java:101)
    at org.apache.maven.cli.MavenCli.execute (MavenCli.java:906)
    at org.apache.maven.cli.MavenCli.doMain (MavenCli.java:283)
    at org.apache.maven.cli.MavenCli.main (MavenCli.java:206)
    at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0 (Native Method)
    at jdk.internal.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java:77)
    at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke (Method.java:568)
    at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced (Launcher.java:283)
    at org.codehaus.plexus.classworlds.launcher.Launcher.launch (Launcher.java:226)
    at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode (Launcher.java:407)
    at org.codehaus.plexus.classworlds.launcher.Launcher.main (Launcher.java:348)
Caused by: java.lang.IllegalAccessError: class lombok.javac.apt.LombokProcessor (in unnamed module @0x1f9d4b0e) cannot access class com.sun.tools.javac.processing.JavacProcessingEnvironment (in module jdk.compiler) because module jdk.compiler does not export com.sun.tools.javac.processing to unnamed module @0x1f9d4b0e
    at lombok.javac.apt.LombokProcessor.getJavacProcessingEnvironment (LombokProcessor.java:419)
    at lombok.javac.apt.LombokProcessor.init (LombokProcessor.java:90)
    at lombok.core.AnnotationProcessor$JavacDescriptor.want (AnnotationProcessor.java:124)
    at lombok.core.AnnotationProcessor.init (AnnotationProcessor.java:177)
    at lombok.launch.AnnotationProcessorHider$AnnotationProcessor.init (AnnotationProcessor.java:73)
    at com.sun.tools.javac.processing.JavacProcessingEnvironment$ProcessorState.<init> (JavacProcessingEnvironment.java:701)
    at com.sun.tools.javac.processing.JavacProcessingEnvironment$DiscoveredProcessors$ProcessorStateIterator.next (JavacProcessingEnvironment.java:828)
    at com.sun.tools.javac.processing.JavacProcessingEnvironment.discoverAndRunProcs (JavacProcessingEnvironment.java:924)
    at com.sun.tools.javac.processing.JavacProcessingEnvironment$Round.run (JavacProcessingEnvironment.java:1267)
    at com.sun.tools.javac.processing.JavacProcessingEnvironment.doProcessing (JavacProcessingEnvironment.java:1382)
    at com.sun.tools.javac.main.JavaCompiler.processAnnotations (JavaCompiler.java:1234)
    at com.sun.tools.javac.main.JavaCompiler.compile (JavaCompiler.java:916)
    at com.sun.tools.javac.api.JavacTaskImpl.lambda$doCall$0 (JavacTaskImpl.java:104)
    at com.sun.tools.javac.api.JavacTaskImpl.invocationHelper (JavacTaskImpl.java:152)
    at com.sun.tools.javac.api.JavacTaskImpl.doCall (JavacTaskImpl.java:100)
    at com.sun.tools.javac.api.JavacTaskImpl.call (JavacTaskImpl.java:94)
    at org.codehaus.plexus.compiler.javac.JavaxToolsCompiler.compileInProcess (JavaxToolsCompiler.java:126)
    at org.codehaus.plexus.compiler.javac.JavacCompiler.performCompile (JavacCompiler.java:174)
    at org.apache.maven.plugin.compiler.AbstractCompilerMojo.execute (AbstractCompilerMojo.java:1129)
    at org.apache.maven.plugin.compiler.CompilerMojo.execute (CompilerMojo.java:188)
    at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo (DefaultBuildPluginManager.java:126)
    at org.apache.maven.lifecycle.internal.MojoExecutor.doExecute2 (MojoExecutor.java:328)
    at org.apache.maven.lifecycle.internal.MojoExecutor.doExecute (MojoExecutor.java:316)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:212)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:174)
    at org.apache.maven.lifecycle.internal.MojoExecutor.access$000 (MojoExecutor.java:75)
    at org.apache.maven.lifecycle.internal.MojoExecutor$1.run (MojoExecutor.java:162)
    at org.apache.maven.plugin.DefaultMojosExecutionStrategy.execute (DefaultMojosExecutionStrategy.java:39)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:159)
    at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:105)
    at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:73)
    at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build (SingleThreadedBuilder.java:53)
    at org.apache.maven.lifecycle.internal.LifecycleStarter.execute (LifecycleStarter.java:118)
    at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:261)
    at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:173)
    at org.apache.maven.DefaultMaven.execute (DefaultMaven.java:101)
    at org.apache.maven.cli.MavenCli.execute (MavenCli.java:906)
    at org.apache.maven.cli.MavenCli.doMain (MavenCli.java:283)
    at org.apache.maven.cli.MavenCli.main (MavenCli.java:206)
    at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0 (Native Method)
    at jdk.internal.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java:77)
    at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke (Method.java:568)
    at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced (Launcher.java:283)
    at org.codehaus.plexus.classworlds.launcher.Launcher.launch (Launcher.java:226)
    at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode (Launcher.java:407)
    at org.codehaus.plexus.classworlds.launcher.Launcher.main (Launcher.java:348)
[ERROR] 
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR] 
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoExecutionException

Data explorer is missing 17 SDG's data

I realized that all the time 17'th sdg was also missing in distribution by SDG data visualization

Current
before

There is probably a simple bug in index.js when we iterate over jsons. Because data_sdg.length return 16 in website output file.

Add introductory page to Eligibility Form

  • Create an intro to the eligibility form saying who should use it (project owners, frequent users trying to decide if their favorite project could be a DPG, etc.) and what it will do (a quick way to see if the product is likely eligible).

Additional tasks:

  • Anywhere on the Elig form, replace “project”, “projects”, “product” or “products” with “digital solution” or “digital solutions”
  • Update Question 4 → Response to “What does it mean to be platform-independent?”
  • Update Question 6 → Response to “What is “non-personally identifiable data”?”

Update User Workflow based on Feedback Round 2

Make the following changes in Task Flow:

  • Add question "Are you the product owner?" after question 6.
  • If Yes, display the next three questions and then Result.
  • If No, take directly to Result page based on already answered questions.
  • Ensure correct question numbers are displayed in either task flow

Add Link to Source Code of DPGs

Summary

Currently, people who come to the Digital Public Goods (DPGs) registry don't have an easy way to view the code of the repositories. This forces them to visit the project, search for a link to GitHub (or other hosting platform) and then navigate there. For some DPGs this is a frustrating experience as this is something available. I'd like to add a link in the registry to the code.

Justification

This will allow technologists and others who are interested in contributing to DPG projects to quickly find the source code and not leave frustrated. Several projects link to production sites and finding the code requires internet searches or more. Some of the key benefits I see of listing this are:

  • This will make it easier for potential code contributors to find where to go to make these contributions.
  • It will also make it easier folks who are thinking of adopting the project but want to evaluate the code before doing so.

Details

It looks like this could be accomplished by adding a link in the ListItem function in following file:
packages/registry/src/index.js which appears to be generating the registry.

It would involve editing the sections which set the name attribute and specifically it could be accomplished in lines 261-266 of the above file.

Other considerations

The json payload contains a repositories section with a link to the repository/source code of the project. It should be noted that a few projects list multiple repositories so I'd propose taking the first repository and using it.

Criteria for completion

  • Add a Source Code link in the name section of the registry that links to the source code if it exists.
  • When there are multiple repositories available link to the first repository.

Updating links on readme

Hi, this link on the readme - http://localhost:8080/ - is not working. I'm unable to fix it. Fletcher, could you please look into it? It would be great if you could audit the repos you work on to fix the broken links as well. Thanks a lot.

Updating System Generated Emails

Since nathan baleeta has left, and the system generated emails were sent from his side, we have changed the name of the sender to either Ricardo or Prajakta.

Inconsistent number of questions throughout the form

The number of questions is not consistent through the form, with the intro page stating there are 9 questions, then the form loads and says there are 7, the user answers 10, and the summary page again says there are 9 questions. If any of these values are hardcoded, they should be dynamically generated based of the questions in the dictionary. See screenshots below for additional details.

The intro page states that there are 9 questions:
Screen Shot 2021-08-18 at 7 56 28 PM

When the form loads it displays 1 of 7 questions:
Screen Shot 2021-08-18 at 5 04 32 PM (3)

At the end of the form, the user has answered 10 questions:
Screen Shot 2021-08-18 at 7 58 02 PM

Yet, the summary page, says that there are 9 questions:
Screen Shot 2021-08-18 at 7 58 19 PM

Re-directing public pages of older DPGs

The DPG - ODK - brought this issue to our notice. They had submitted their initial application through Github before the webapp was built. The link to their public DPG page at the time was https://digitalpublicgoods.net/registry/odk.html.

However, once the webapp was built, all previous public DPG links had to re-direct to their Registry page.
For ODK, that link is - https://digitalpublicgoods.net/registry/

However, this redirect seems to have not happened and their previous link with outdated information is still live.

This makes me wonder whether other DPGs would face the same issue.

All GitHub public pages of DPGs should redirect to the updated public pages through the website registry.

For example https://digitalpublicgoods.net/registry/odk.html. should redirect to https://digitalpublicgoods.net/registry/

This was a part of the transition plan and is not completed:

  • What happens to the existing public URLs of each DPG?
    A copy of each submitted application is made available via a public URL so that Experts can quickly access an application in order to collaborate with reviewers and the general public can access an application in a user-friendly format.
    These webpages are generated by the webapp in this format : app.digitalpublicgoods.net/application/
    All existing public URLs, example: https://digitalpublicgoods.net/registry/.html, will be removed.

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.