Giter VIP home page Giter VIP logo

prayer-global-porch's Introduction

Prayer Global Porch

Prayer Global Porch is the core prayer app for the prayer.global website.

Creating a release

Run

npm run release:fix npm run release:feature npm run release:major

This will generate the correct semver tag based off of the current tag found in package.json.

It will then create a new tag of this number on the current commit, change the version number in

  • package.json
  • version-control.json
  • prayer-global-porch.php

This will trigger the github release action to create a new zip of the plugin with the correct release number.

Anywhere that is using the plugin, will then get an upgrade notice in WP.

Content Attributions

Image by studiogstock on Freepik

Image by rawpixel.com on Freepik

prayer-global-porch's People

Contributors

squigglybob avatar chrischasm avatar corsacca avatar discipletoolsbot avatar himayrunner avatar

Watchers

 avatar  avatar  avatar

prayer-global-porch's Issues

security

when logging into P.G. the password is POSTed in plain text

Store in the cookie location information as well as hash

    One other thought I had while writing this comment was that for the (Good) level of tracking, we could include in the Cookie in addition to the hash, the lng,lat,level,and label of the initial hash, and use this into the future.  This would reduce the number of extra reporting some.

Originally posted by @ChrisChasm in #100 (comment)

Issue: Additional prayer warriors can be logged when a person changes ip address or location or browser.

Nomination: In addition to the hash, also store initial location data in a cookie, and if cookie is present use the hash and the location data from the cookie, instead of creating new location data.

Feature: recommending the mobile app when visiting browser experience on device

Feature suggestion:

When a user hits the browser experience (not the prayer experience but any other part of the site)

We could send them a popup/toast suggesting that they download the app from their relevant app store.

This would help point people more strongly towards the app experience where we can communicate better with them.

blocked by #88

Heatmap plotted value not total times prayed for

@ChrisChasm

Having implemented the heatmap and the community statistics I saw discrepancies between the colour on the heatmap and the statistics being found.

I just want to check that the value being got from the database for plotting on the heatmap is the right one.

Current behaviour

At the moment in get_grid endpoint of race_map.php it is getting the r.value of one of the reports for the grid_id.

This is leading to a map and stats like this

image

Where the area is dark green because of total minutes prayed for it, but only prayed for once

Expected behaviour

Should the value plotted on the heatmap be the number of times the area has been prayed for?

how we could remove the legend

Discussed in #39

Originally posted by squigglybob November 15, 2022
So I've been thinking about how we could remove the need for the legend...
In my mind everything in the bottom section of the map is the legend.

Currently
image

So we could emphasize the colours of the green and red in the foot block by reversing the colours of the numbers with the background like so...
image

would that make it more obvious that these are the colours represented on the map?
Or should we also make it more legendy like the legend I added.

Maybe something like this?
image

@ChrisChasm @corsacca @himayrunner @ahillbilly @prykon

Remove "More Facts"

Currently you can select "More Guided" vs "More Facts".

  1. This adds more selections than necessary.
  2. The adds a second route and complicates the API and code stacker, making it harder for collaboration.

Suggestion remove. This alternate route and the complexity of UI and Code does not balance the benefit.

maps: foot_block and legend taking up too much space on small screen

on my wifes phone it looks something like this
image

something like 368x580 on a responsive viewport.

maybe we should reduce the font size and image size on small screens to reduce the vertical space taken up, or take it to another level and reorganise the positions of the foot_block and really squish it down to half it's size

what do you reckon @ChrisChasm

User profile preferences

location hash/iplocation/user change

  • if the user doesn't have a location on login, use IPStack to get a coarse location
  • display location with change button
  • if coarse location display explanation text "Guessed location"
  • on click of change button, display location selection modal
  • on click ok of modal save location to user
  • save iplocation hash to the user profile

email preferences

  • onclick of email preferences update user meta

account options

  • onclick of data report go to data report page/modal with report in
  • onclick of erase my account --> modal with implications text, and input to fill in to confirm
  • on submission of erase form --> unregister user, ( remove user/DT contact, obfuscate prayer report locations for this user? ) (moved to own issue in order to wait for clarification)

Deep linking for mobile app

We need to complete the deep linking for the mobile app. So someone who has the mobile app can respond to a link in an email or text and it will open the mobile app not the web browser.

Increased shuffling of concept order

Prayed for 10 and got non Christian’s and cultural Christian’s at the top 5 times.

Seems like there should be more shuffling of concepts.

Add a prayer counter to the praying page

Current there is no good way to know if I have prayed through 4 or 40 locations.

I suggest a little counter that runs in the browser and helps a prayer warrior keep track of how many locations they have prayed for.

Screenshot 2022-11-23 at 6 40 44 AM

Gap above the navigation

There is a gap at the top of the page above the navigation so that you can see scrolling content above your navigation.

push margin to top and add padding to reset position

Hide "Start Praying" at the t

Currently, the start praying button is displayed at the top of the groups page. This is to encourage a CTA.

Screenshot 2022-11-25 at 9 51 55 AM

I believe it should be hidden on this page. It visually cues a CTA before the purpose of the page. The page purpose is to help people connect with the group challenges. I think the "Start Praying" button in the offcanvas menu is sufficient for this page.

User Screen UI

What should the User screen look like?

  • Your details
    • Your location, which will override their actual location.
    • Currently has a SHA hash of their location
    • This will diminish the noisy tracking of people as we switch towards only mapping logged in users.
    • We have IPstack data so could autosuggest where we think they are, window.user_location
    • Their current hash is saved in a cookie and this is compared to the user_location hash
  • Your stats
    • cool motivating statistics like locations, time,
  • Your map
  • Your groups
  • Group creation
    • create a custom lap by myself and get others to participate.
    • group creator will have access to the display and sharing tools, the main group page could then just be the map and start praying buttons.
    • Ability to invite others to the group
    • Ability to see who has joined the group

More accurate Time prayed

Discussed in #44

Originally posted by squigglybob November 16, 2022
At the moment this is just a best guess, as it is based on the user's chosen amount of time that they want to pray for.

E.g. a user is using the default 1min timer and prays for 20 places, they will be recorded as having prayed for 20 mins, even if they actually spent 5 mins praying for each place.

Should/Could we instead, track the time between them entering into a prayer experience for a place, and clicking next/done?

This would give a more accurate picture of time actually spent praying, but would also be an upper limit of time prayed, rather than the current lower limit of time prayed.

What do you think @ChrisChasm ?

Zero Population

There are several states which have 0 population.

What do we want to do with these?

We could either skip them/not include them/have different prayers for them.

Either way some of the data needs to be massaged for these areas as in the database they have > 0% values for some things even though the population is 0.

Fix least reached image

When no image is available from Joshua project for a least reached person, a warning image is displayed.

Screenshot 2022-11-09 at 7 14 19 AM

Replace this warning graphic with a mystery man image. Maybe one that is red to reflect the "least reached" category.

404 interfering with route to take you to /completed

In magic-global.php there is some logic to say that if the hash in the url doesn't match the current lap then redirect to the .../completed url.

The new 404 page is overriding that, and taking you straight to the 404 page if you tamper with the hash.

@ChrisChasm what should the behaviour be here?

Some places have ajax errors when clicked on

On global map

Click on the red area near top left of africa

image

Fetching the location data fails with the error

<div id="error"><p class="wpdberror"><strong>WordPress database error:</strong> [You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near &#039;ORDER BY lgpg.population DESC
                LIMIT 5&#039; at line 14]<br /><code>
            SELECT
                   lgpg.id,
                   lgpg.geonameid,
                   lgpg.name,
                   lgpg.full_name,
                   lgpg.admin0_name,
                   lgpg.latitude,
                   lgpg.longitude,
                   lgpg.timezone,
                   lgpg.population as population_int,
                   FORMAT(lgpg.population, 0) as population
                FROM location_grid_cities lgpg
                 WHERE lgpg.admin0_grid_id =  
                ORDER BY lgpg.population DESC
                LIMIT 5
        </code></p></div>{"list":[{"type":"content_block","data":{"section_label":"Demographics","focus_label":null,"icon":"ion-map","color":"green","section_summary":null,"prayer":""}},{"type":"prayer_block","data":{"section_label":"Movement Prayer","icon_color":"green","prayer":null}},{"type":"verse_block","data":{"section_label":"Scripture","icon_color":"green","verse":"And this gospel of the kingdom will be preached in the whole world as a testimony to all nations, and then the end will come.","reference":"Matthew 24:14","prayer":null}},{"type":"percent_3_bar","data":{"section_label":"Faith Status","label_1":"Don't","percent_1":0,"population_1":"0","label_2":"Know About","percent_2":0,"population_2":"0","label_3":"Know","percent_3":0,"population_3":"0","section_summary":"Non-Christians - 0 | Cultural Christians - 0 | Believers - 0","prayer":null}}],"location":{"level":0,"longitude":0,"latitude":0,"north_latitude":0,"south_latitude":0,"east_longitude":0,"west_longitude":0,"p_latitude":0,"p_longitude":0,"p_north_latitude":0,"p_south_latitude":0,"p_east_longitude":0,"p_west_longitude":0,"c_latitude":0,"c_longitude":0,"c_north_latitude":0,"c_south_latitude":0,"c_east_longitude":0,"c_west_longitude":0,"birth_rate":0,"death_rate":0,"growth_rate":0,"population_int":0,"population":"0","believers_int":0,"believers":"0","christian_adherents_int":0,"christian_adherents":"0","non_christians_int":0,"non_christians":"0","percent_believers_full":0,"percent_believers":0,"percent_christian_adherents_full":0,"percent_christian_adherents":0,"percent_non_christians_full":0,"percent_non_christians":0,"all_lost_int":0,"all_lost":"0","lost_per_believer_int":0,"lost_per_believer":"0","population_growth_status":"Fastest Declining in the World","deaths_non_christians_next_hour":"0","deaths_non_christians_next_100":"0","deaths_non_christians_next_week":"0","deaths_non_christians_next_month":"0","deaths_non_christians_next_year":"0","births_non_christians_last_hour":"0","births_non_christians_last_100":"0","births_non_christians_last_week":"0","births_non_christians_last_month":"0","births_non_christians_last_year":"0","deaths_christian_adherents_next_hour":"0","deaths_christian_adherents_next_100":"0","deaths_christian_adherents_next_week":"0","deaths_christian_adherents_next_month":"0","deaths_christian_adherents_next_year":"0","births_christian_adherents_last_hour":"0","births_christian_adherents_last_100":"0","births_christian_adherents_last_week":"0","births_christian_adherents_last_month":"0","births_christian_adherents_last_year":"0","deaths_among_lost":"0","new_churches_needed":"0","favor":null,"icon_color":"green"}}

User create Challenge

Challenge creation

  • create challenge tab structure
  • create form for creating a challenge
  • create private/public challenge linked to user
  • change button group to highlight chosen option better
  • list private/public challenges
  • click through to manage challenge page
  • refactor all challenges page to only show public/undefined visibility challenges

Mobile View - Group Challenge List

The current mobile view for the group challenge list uses datatables.js, which adds a nice search-ability and ordering. But the mobile view collapses and makes it awkward to click to visit the group page.

Make a nicer single click list view for the mobile view.

Screenshot 2022-11-16 at 10 18 24 AM

User Profile Mockups

Discussed in #80

Originally posted by ChrisChasm November 28, 2022
Registration
Login
Offcanvas - Logged Out
Offcanvas - Logged In
Main Profile Page
Profile (Manage Page)
Prayers (Manage Page)
Challenges (Manage Page)
New Private Challenge
New Public Challenge


The page transition would be a left and right transition experience. From the main page, a tap on the profile row would transition to the profile page to the right, and the back arrow would bring navigation back to the main page. This navigation is separate from the offcanvas navigation.


Screenshot 2022-11-28 at 2 46 56 PM Screenshot 2022-11-28 at 2 47 13 PM Screenshot 2022-11-28 at 2 47 22 PM Screenshot 2022-11-28 at 2 47 35 PM Screenshot 2022-11-28 at 2 55 02 PM Screenshot 2022-11-28 at 2 48 00 PM Screenshot 2022-11-28 at 2 48 09 PM Screenshot 2022-11-28 at 2 48 24 PM Screenshot 2022-11-28 at 2 48 34 PM Screenshot 2022-11-28 at 2 48 44 PM

User Profile: Deleting a user

@ChrisChasm

What level do we need to go to with this?

Options of things to delete

  1. user account
  2. user and contact
  3. user and contact and any links to groups/prayers made (location data is stored in prayers)

Obfuscate and allow user to come back later

Or we could delete any POI from all of the above and keep a holding user or something with a hash of their email address

Then if the user re-registers with the hashed email address they would be able to recover their account to some extent, at least to retrieve made prayers etc.

What are your thoughts on this?

change get_ip_location endpoints to allow for logged in users

Once we have logged in users we can change the way that the maps display the prayer warriors.

Rather than displaying unique hashes, which results in multiple symbols potentially for the same user (hashes are dependent on device/browser/ip etc)

If a record has a user id attached to it, we can use that user's location instead.

This may or may not need a change to the way that the get_ip_location endpoint works.
I don't see it needing changing, except for maybe the lap.js not calling the endpoint if the user is logged in and has a location set.

If we allow the user to opt out of location tracking, then if the user has no location, then the prayer report will also have no hash assosciated with it either

Change the prayer icon

Issue: the current prayer warrior icon has negative feedback. It is also not scaling up and down with the zoom to better sizes. Overlapping is consistent because the quantity of prayer warriors is often 1000+.

Nominations for replacement icons

User Map

  • get the user stats to give to the map.
  • calculate what lap they are on.
  • footer stats to include time prayed and speed

pray for specific states

Add a button on the location_details / stats page to allow users to pray for a specific place if they click on the map.

Location Details Panel Possible locations
image Could go on the sticky top bar or underneath the place name
flowchart TD
pre1{{clicks on map}} --> pre2(opens location_details side bar for grid_id=123456789)
pre2 --> A
  A{{clicks on 'pray for this place'}} --> B(goes to /prayer_app/lap_type/hash?grid_id=123456789)
B --> C{{clicks done}}
C--> D(goes back to the map they came from)
B --> E{{clicks next}}
E --> F(goes to next random prayer)
F --> E
F --> C
Loading

Map icons representing users

The current map shows all the prayer warriors with a common single image replicated where ever the warrior is located.

What would it take (when there are user accounts) for a user to set their location, pick their image and that image show up on the map to represent them in any lap that they've participated.

I think this could contribute to user engagement and the person seeing themself clearly as a part of a much bigger community. It would add a fun factor and differentiate the prayer warriors mapped.

Screen Shot 2022-10-04 at 11 01 55 AM

boostrap version

We are currently using bootstrap 4.0-beta

I would like to upgrade this to bootstrap 4.0 or 4.1.3 as they would contain some CSS vars that would allow bootstrap colours to be easily used throughout any custom CSS

Make mobile table change to race_list

The mobile view of the race_list is the old version, compared to the expanded version for the groups list.

The race_list should match the groups list in mobile view.

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.