Giter VIP home page Giter VIP logo

jrs-innovation-center / tcvsn-pwa Goto Github PK

View Code? Open in Web Editor NEW
8.0 5.0 3.0 5.03 MB

Veteran Support Base Progressive Web App (PWA). We are grateful for the sacrifices of our veterans and their families. Now, please receive our gratitude and our desire to serve you with that same spirit of excellence.

JavaScript 98.04% HTML 1.30% CSS 0.67%
pwa reactjs nodejs redux redux-thunk material-ui couchdb ramdajs functional-programming

tcvsn-pwa's Introduction

Veteran Support Base

Veteran Support Base Progressive Web App (PWA)

Developer Setup Instructions

The developer setup consists of a database server, an api server and an application server.

Run each app manually

CouchDB

In a terminal run a local couchdb

mkdir data
docker run -p 5984:5984 -v $(pwd/data):/opt/couchdb/data apache/couchdb

API

In a terminal run the api server

cd api

If this is your first time setting up the enviroment, make sure you load the test data and indexes

yarn load

Then start the server in dev mode

yarn dev

APP

In a terminal run the app server

cd app

If this is your first time, setup your .env file - also make sure the url is pointing to your api server.

echo REACT_APP_BASE_URL=http://localhost:5000

We display a map of the veteran resource at the top of the resource card. You also need the api key for google maps. Contact @twilson63 or @tripott for the secret.

echo REACT_APP_MAP=<contact a repo admin for secret>
yarn start

Trouble running the dev setup, post an issue.

EXPERIMENTAL - You can start all three of these servers up using one foreman proc file, or run them in separate windows.

yarn start

tcvsn-pwa's People

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

tcvsn-pwa's Issues

Delete Resource

Provide ability to delete a resource when viewing an individual resource. Add delete menu item to the secondary menu. Provide a confirm dialog.

Small add/edit form usability adjustments

  • category name field -> multiline
  • resource shortName field -> multiline
  • resource website field -> multiline ??
  • increase width/max-width to 70, maybe 75%
  • add small margin (16px) to the bottom of both forms

(docs): Create Documentation Site for Repo

Create a Documenation WebSite for the Repository that shows the WireFrames, the User Stories, API Docs, Stack, Core Contributors, etc.

This task is to just setup the basics of the site.

Delete Category

Provide ability to delete a category when viewing an individual category. Add delete menu item to the secondary menu. Provide a confirm dialog. When deleting a category, set category id to null on all related resource documents.

Add React App Getting Started Documentation

Enhance existing documentation within app/readme.md to include instructions to help fellow developers:

  • clone the app
  • cd app
  • install depedencies (yarn)
  • establish environment variables.

Within the main project's readme.md include a link named 'React App` that points to app/readme.md.

Add Resource Detail on Resource Show Card

Enhance the Resource Show Card to display the following additional pieces of information when the toggle is selected. Use the toggle icon to control the expanded state of the card. Down icon for closed state of card. Up icon for open/expanded state of card. See https://material-ui-next.com/demos/cards/#complex-interaction.

Expanded state of card shows remaining purpose, all contacts and all addresses.

See https://github.com/jrs-innovation-center/tcvsn-pwa/blob/master/docs/wireframes.md#resource

Older material ui wireframe design. Current Resource Show Card should deviate from wireframe design and adhere to https://material-ui-next.com/ card, such as see https://material-ui-next.com/demos/cards/#complex-interaction, instead .

Category List Item Popup Menu: View Resources, Details

As a veteran, while I am viewing a list of categories, I wish to filter the resources by selecting View Resources from the list item's popup menu. This behavior is the same behavior as the primary action for a category list item. See #69.

As a veteran, as I am viewing a list of categories, I wish to display the details for the category by selecting Details from a popup menu. Selecting details navigates the user to the show page for the selected category.

Clean up api docs

  • clean up the api docs, required fields, add cd api to getting started.

Resource List Item Popup Menu: Call, Website, Details

As a veteran, as I am viewing a list of resources, I wish to call the primary contact number of the resource by selecting Call from a popup menu.

As a veteran, as I am viewing a list of resources, I wish to visit the website of the resource by selecting Website from a popup menu.

As a veteran, as I am viewing a list of resources, I wish to display the details for the resource by selecting Details from a popup menu. Selecting details, navigates the user to the show page for the selected resource. This is the same as the primary action for the resource list item.

Wireframe

Change single category page "resource" button

  • move the icon before the text to match the flow
  • match the left margin spacing to that of the other items on the page (wrap in CardAction)
  • change button text to "view resources" or "related resources" maybe ??

Resource Filter Drop Down

See related issue #69. As a veteran, I want the ability to filter resources so that I can better locate the resource I need. On the resources list page, I want the ability to select an item from the resource filter drop-down list and filter the resources by:

Resource Categories

  • Basic Needs Assistance
  • Benefits
  • Education/Vocational
  • Employment
  • Financial & Legal
  • Government
  • Health
  • Housing
  • Information & Referral
  • Peer Support & Recreation
  • Rehab & Rec Therapy
  • Notes
  • top 10 resources
  • All (resets the filter)

-Selecting "All" from the filter removes any applied filter and displays all the resources in the list of resources.

Docs

Deploy Docs using Now and update the docs readme and summary page

Main menu search button placement

The padding on the right of the app bar search button needs to be decreased to match the menu/goback button on the opposing side.

(idea): Discussion - Home Page To List a veterans favorite resources

What if the home page was the list of favorited resources by the user, so they could mark a resource as a favorite, we would store the id, name of resource in local storage and retrieve the list when they visit the app again from the save device on the home page. Then the default view with no favorite resources could be a logo and a note about how to add a favorite resource.

Thoughts???

Update load-data script

  • add temporary primaryPhone property outside of contacts array. see @twilson63.
  • clean up empty objects within contacts and addresses and faq arrays
  • create a descriptive short name
  • modify short desc
  • clean up _id values.
  • remove http:// from website property

Clean up load data

@billjoy090967 There's a lot of bad data in the resource documents. see load-data.js. Seems to be errors in the phone numbers within contacts

WRONG

contacts: [
{
name: "Selena Wilson",
office: "One80 Place",
title: "Chief Program Officer",
phone: [
{
mainLine: "843-723-9477",
Supportive Services for Veterans & Families (SSVF) Hotline: "843-212-8668"
}
]

CORRECT

contacts: [
{
name: "Selena Wilson",
office: "One80 Place",
title: "Chief Program Officer",
phone: "843-723-9477",
email: null, isPrimary: false
},
{
name: "Supportive Services for Veterans & Families (SSVF) Hotline",
office: "One80 Place",
title: null,
phone: "843-212-8668",
email: null, isPrimary: true
}
]

Filter Resources by selecting a category from category list

See related issue #70. As a veteran, as I am viewing a listing of categories using the categories list page, I desire the ability to filter resources by selecting a category item in the list so that I can easily locate resources.

Workflow

  • User selects categories from menu drawer.
  • User redirected to a listing of category items are displayed
  • The user scrolls through category items in the list and selects a category.
  • User redirected to the resources list page which displays a listing of resource items, filtered by the selected category. The resource filter drop down should be set to the selected category.
  • The user selects a different item from the resource filter. See #70.

Resource Avatar Cleanup

  • clean up avatar with appropriate letter, ignoring common articles such as The, A, An, etc. See pk generator lib for inspiration.

Add map on resource show card

As a veteran, I wish to view the primary address location for the resource on a map at the top of the resource show card so that I can quickly know the location. In addition to displaying the map, display the following:

  • Primary address (street, city, state, zip)
  • Primary contact phone number

Implementation Notes

Note: Wireframe is old and incorrectly based on an older version of Material UI rather than https://material-ui-next.com/.

FAB Padding

  • ensure fab padding allows selection of last item in list

Search Resources

As a veteran, I desire the ability to search resources by the resource's name, formalName, shortDesc properties so that I can find the appropriate resource for my needs.

  • a prominent search icon on the nav menu that is easy to find.
  • ability to select Search from the main menu drawer.

Workflow

  • Once I decide to start a search, I desire to enter my search criteria into a text box within the nav menu at the top of the page. Search Wireframe 1

  • As I enter my search criteria, I wish to see a list of resources whose name, formalName, shortDesc properties contains my search criteria. For example, search criteria of "red" would find the following resources. Search Wireframe 2

  • Once I select a resource item from the list, I wish to navigate to the Resource Show Page. Wireframe

Implementation Notes/Suggestions

  • For speed, search the resource documents within the redux state resources array rather than using the API.
  • Added search enginesearchDocs and searchStringBuilder functions. view code library helpers. These functions can be leveraged by the search page and used as the core search engine to filter the redux resources array.
  • Once resources array is filtered, dispatch the filtered array to the redux store as filteredResources. Use this filteredResources array to paint a list of resource items. Reuse resource item from the resource list page.

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.