ncosd / food-pantry-app Goto Github PK
View Code? Open in Web Editor NEWWeb application for food pantries. Volunteer registration and approval. Creating physical sites and time windows for volunteers to sign up to cover.
License: MIT License
Web application for food pantries. Volunteer registration and approval. Creating physical sites and time windows for volunteers to sign up to cover.
License: MIT License
Decide if during the registration flow we want to make sure the user verifies their email address, or if we want to have a link from the user profile page.
Use https://firebase.google.com/docs/auth/web/manage-users#send_a_user_a_verification_email to send the verification email.
In the AppNavigation component, create an EmailVerified component which displays if the user is not verified. It should have a link to the user profile page, where they can click a link to have the verification email re-sent to them.
After signing up for an account, a person needs to go through a short flow to determine:
Depending on the answers to those questions, they should be directed to pages to collect needed information and then categorized. They should be able to re-answer these questions at any time.
A delivery route is a set of deliveries. One or more admin users will be assigned to a route on a day. When the route is activated for a day, the admin users should be able to set the state for each household's delivery, one of [Ready to Pack, Packing, Packed, OnVan, Delivered, Exception].
Need to design the document collection in firestore to track the route with the household addresses (DeliveryProfile) and the current state for that day. The guest should be able to see their state for that day in the Guest app. The admins should be able to see the status on the Route for that day in the Admin app.
Create a form to let a user change their password.
The link to change password should be on the user profile page. Use https://firebase.google.com/docs/auth/web/manage-users#set_a_users_password to change the password.
Is your feature request related to a problem? Please describe.
Need Terms and Privacy Policy view.
Describe the solution you'd like
Need components and views for
Add storybook for components
Create the volunteer form from the website. This registration is for a volunteer rather than a guest.
volunteerprofile
Following https://github.com/marketplace/actions/deploy-to-firebase-hosting#options a dev channel can be created to set up PR's for testing.
If a volunteer is signed up to cover a window/session, they need the ability to cancel. They can select the window either from their profile page or the volunteer calendar.
When they choose to cancel, a message is sent to the admins, either email and/or text message.
Admins can view list of the volunteers.
Is your feature request related to a problem? Please describe.
Users need a way to delete their account, and their data from the application.
Describe the solution you'd like
Need a way to delete an account and delete their information from the system.
https://firebase.google.com/docs/auth/web/manage-users#delete_a_user
Describe alternatives you've considered
Look to see if there is a firebase module for this already.
Additional context
None at this time.
Add empty firebase application
When a volunteer registers, their VolunteerProfileState
is created with status
in-review
.
Create a page that displays the information for a single volunteer by id so the admin can change the status.
Status can be one of:
When registering, select as a volunteer.
Registration signup includes a checkbox to mark user as a volunteer.
https://ncosd.github.io/food-pantry-app-prototype/registration/
Register as a volunteer.
Add running storybook to the README.md
Need a branded 404 page.
Create a NotFound component, and add to the router to display the NotFound component when needed.
This provides an example https://stackoverflow.com/a/45631742
There are quite a few configuration settings needed for local development or if someone wants to use this project for their food pantry. A configuration tool, either as a web page, or command line tool is useful for setting up local files needed for local development.
https://github.com/SBoudrias/Inquirer.js could be a good tool to build a command line tool, that would use the env.demo
files as a template to create the .env
files in the correct place.
When a volunteer brings up the app on their phone, if they are in a volunteer window they signed up for, they should have a banner message that has a call to action to "check in" they are doing the volunteer activity.
Regardless of the page they are on, they see a message like:
Check in for <TaskType> now? [ Yes ] [ Dismiss ]
The https://foodpantrydemo.web.app/delivery-form should have a component that explains the service area that is under the application status component. This will help explain the service area for deliveries. There should be a link to the other places that a guest can look to find other organizations if they are not in our service area.
A ServiceArea component that is displayed on the left nav vertical.
It would be good to list out the zip codes that are covered in the service area (this is in the config). Maybe also include a text field the user can type in their zip code and the component can quickly respond if the guest is inside the service area, or outside. Then provide the link to the other places they can contact for service.
The time windows will have up to 4 different locations. Have the ability to Create locations, and use them on the #113 page to create volunteer windows.
components/LocationAdmin.vue
locations
Before we were using vuex for state. Want to move to using pinia for state.
Users that forget their password need a link to 'forgot password'
Follow the guide for sending the email here: https://firebase.google.com/docs/auth/web/manage-users#send_a_password_reset_email
Component for the Admin homepage (bottom of the page https://ncosd.github.io/food-pantry-app-prototype/volunteer/admin/homepage/)
Name | details | action | |
---|---|---|---|
First last | [email protected] | meets all criteria | - [ ] Activate [ ] Inactivate |
First last [email protected] meets all criteria - [ ] Activate [ ] Inactivate | |||
First last [email protected] meets all criteria - [ ] Activate [ ] Inactivate | |||
First last [email protected] meets all criteria - [ ] Activate [ ] Inactivate | |||
First last [email protected] meets all criteria - [ ] Activate [ ] Inactivate |
Page for Terms of Use.
Display a calendar view, showing the days of the month
HTML/CSS is done https://github.com/ncosd/food-pantry-app-prototype/blob/main/content/volunteer/calendar.md
Is your feature request related to a problem? Please describe.
Add github workflow to run unit tests.
Describe the solution you'd like
Run the unit tests on branches.
Set up unit testing
Members can register with the system today. We need a process to check in a member when they visit the food bank. This will keep a record that someone has visited and was served. This will allow automating reports for usage.
A member will be assigned a UUID. The UUID can be used to create a scannable QR code displayed on an account profile page. The admin application can have a scanning page that uses the camera on the phone to scan the QR code to record the guest has checked in.
An anonymized visit record can be created that uses information needed for reporting.
user.id
as a QR code that can be scanned and record the datetime scanned, and which admin scanned it.The vue application needs to set a page title so that page views are tracked by name in analytics.
When an admin needs to add someone as an admin, they should be able to enter an email address to send an invitation for someone to sign up. Once the new person is signed up, they should be given the admin role.
The nav menu on the admin page should not be displayed if you are not logged in.
Once someone submits a delivery application, they should be able to return to the site to see the status of the application, if has been reviewed, accepted, or denied. This form will be where guests will be able to maintain their delivery information - so they should be able to return to this form and update information and be sure that it has been reviewed and accepted. This is important even after their application has been accepted.
Describe the solution you'd like
Need a component that lists:
Note
There may be another collection that is readable, writable by admins only for them to keep notes as to why status has been set, and a history log that is only available to admins.
Depends on #9
When a guest wants to put their delivery profile on hold, they should be able to mark it on-hold.
Implement this as a function, because we do not want guests to be able to write their DeliveryApplicationStatus document.
Only allow a deliveryform application if the zip code is listed in the delivery area. Otherwise show a message to the user that they are outside the service area, and provide a link for them to search for other organizations.
Describe the solution you'd like
Put the list of zipcodes in the config.
Admins can create a schedule for volunteers based on a date and time window.
Volunteers can apply to be a part of the date/time window, and the admin can approve the request.
On the volunteer profile page, the upcoming date/time windows approved will be listed, and future windows that can be applied to.
Describe the bug
color-modes.js file needs to move to vue.
To Reproduce
Steps to reproduce the behavior:
Expected behavior
Switch themes when selecting a new theme.
After registration, a volunteer should be able to view their profile. They should be able to:
Description
On delivery day, a delivery tag needs to be created with information about packing the delivery box
If a cancellation happens, or there is an unclaimed window in the calendar, the admin can open the window and choose to "send to a list of volunteers".
The list of volunteers will be populated by the preferred times a volunteer has selected in their preferences
The message will go either by email and/or SMS/Text depending on the volunteers preferences
If a volunteer responds they will cover the window, the landing page should note that further volunteers are not needed. (Should we send a follow-up message that the window is covered? Seems like too many messages.)
Delivery managers should be able to review delivery applications, and mark them as active or rejected.
Need to add roles for admins and then pages only admins can interact with.
On a delivery day, a bag will be packed for a household. Once the delivery is made to a household, we want to record that the delivery has been made. This will let us reference the household, which has the number of people in it. These numbers can be added to a history record which can be aggregated into a report. The report is a separate issue [link here once created].
Create a function that can be invoked by a delivery team once the delivery is made. This should create a history record.
Only admins can invoke the function. Once invoked, the history record should have the number of people in the household recorded for that day.
Admin users can create time windows that specify:
Use the vue-datepicker on the create page
The "+" button on the admin calendar goes to the create page
Demonstrate the volunteer portal
Tasks to demonstrate:
The firebase hosting has been refactored to use an "app" for the guest application, and "admin" for the admin application. The guest app is in web/app
. Need to create a new vue app in web/admin
.
Describe the bug
storybook is not currently loading the vuetify components or css
Perhaps work through this to fix storybook https://github.com/nidkil/vuetify-with-storybook
To Reproduce
Steps to reproduce the behavior:
Expected behavior
component is missing vuetify components and css
Screenshots
If applicable, add screenshots to help explain your problem.
Is your feature request related to a problem? Please describe.
Guests can apply to be put on the delivery schedule.
Describe the solution you'd like
The form is on the website, it needs to follow that.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.