ChicoState / ChicoState/PantryNode
Donor Lookup Feature -- Search Functionality
- Dominant language
- TypeScript
- Stars
- 3
- Forks
- 34
- PR merge metrics
- No merged PRs in 30d
Description
## This is an issue spawned from #193
### More specifically, spawned from the original 'Lookup Button' task and Dr. Buffardi's [requested feature](https://github.com/ChicoState/PantryNode/issues/193#issuecomment-1521086669).
1. On a click, the 'Lookup' button needs to pass an input value, the donor's name or id, from a form in order to return an updated list on the 'Donor Lookup Page' where a valid lookup will update the list to show the donor's name/relevant names.
2. If the 'Donor Lookup' fails to return a valid name, the user will be prompted with a 'Failure to find name' and then given an opportunity to input a new donor's name and donation.
### Currently, the 'Donor Lookup' page returns a list of Donors populated from PantryNode's backend. So, the tasks will be broken down as follows:
- [ ] Pass input from form linked to 'Lookup Donor' button into the /lookupDonor route.
- [ ] Retrieve JSON/List used to populate 'Donor Lookup'.
- [ ] Search JSON/List used to populate 'Donor Lookup' values and check for indices that match value return by /lookupDonor route.
- [ ] 'Filter' the searched values by appending values which match /lookupDonor into a new 'searched' list.
- [ ] IF values are added to the 'searched' list then update the 'Donor Lookup Page' with the new list.
- [ ] ELSE prompt the user that the search failed and ask them to make a new donor.
This is a fairly low-level break down to get a proof-of-concept working. Any design that abstracts these above tasks and still produces the same result of, "search for donor, if found make a new list to populate Donor Lookup page, if not found then prompt user to add new donor" then that implementation is viable.
Original UML Diagram from #193 included for reference to 'Donor Lookup' page.

Contributor guide
Assessment
This issue has not been assessed yet.