codefordenver / codefordenver/CWBN
EPIC: GraphQL query for orgs by category
- Dominant language
- Clojure
- Stars
- 5
- Forks
- 2
- PR merge metrics
- No merged PRs in 30d
Description
# Stories
### Backend
- [x] Every 30 minutes, Redis gets data from Airtable and caches it. The data comes in 5 different tables that reference each other's records by ID

- [ ] Right after Redis gets the data from Airtable, call a function to merge the 5 tables into one complete map that contains the full details of each organization, and save it in an atom. A single item (organization) in the map looks something like this:
```
{:name "Organization Name"
:status "Active"
:categories [...]
:services [...]
:type "..."
:tags [...]
:purpose-mission "..."
:target-population "..."
:area-served "..."
:website "..."
:contact-name "..."
:email-address "..."
:phone-number "..."
:address-street "..."
:address-city "..."
:address-state "..."
:address-zip-code "..."
}
```
- [ ] Write a GraphQL schema + resolver that takes a category parameter and returns organizations that have a category match
### Frontend
- [ ] When a category link is clicked, make a query to the backend GraphQL server that returns only the organizations that belong to that category, and store them in the frontend app-db under that category key
Contributor guide
No contributing guide indexed for this repository
Research direction
The issue names no files, tests, or entry points. Begin by locating the Redis/Airtable refresh and GraphQL server, then trace how the frontend stores category data. Done means the five tables are merged into the shown organization map, category filtering works through GraphQL, and frontend category links store the returned organizations under the category key.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- clojure, graphql, redis
- Domain
- api, backend, databases, frontend
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100