-
Notifications
You must be signed in to change notification settings - Fork 3
Categories of Help Requests
This page lists all different categories of help requests that our end users might request from our application.
Date: 07/13/2025
Prepared By: Mohammed Shariq and Fara Fatima
Reviewer: Rao Bhethanabotla
Purpose:
Defines the hierarchy of help categories using a materialized path.
Key Fields:
-
category_id: Hierarchical ID (e.g.,2.3.1) -
string_key(name): Descriptive key (e.g.,EMERGENCY_CLOTHING_ASSISTANCE) -
description: Brief purpose or goal of the category -
path: Full path in the hierarchy (e.g.,2/2.3/2.3.1)
SQL Definition:
-- Table: Help_Category
CREATE TABLE Help_Category (
category_id VARCHAR(50) PRIMARY KEY, -- e.g., '1', '1.1', '1.1.1'
name VARCHAR(100) NOT NULL, -- string_key, e.g., 'DONATE_CLOTHES'
description TEXT NOT NULL, -- purpose or goal of the category
path TEXT NOT NULL -- materialized path, e.g., '1/1.1/1.1.1'
);Purpose:
Stores metadata definitions for dynamic fields required per help category.
Key Fields:
-
field_id: Links toHelp_Category -
field_name_key: Field name (e.g.,size,condition) -
field_type: Data type (e.g.,string,int,float) -
status: Indicates whether the field is currently in use (activeorinactive)
SQL Definition:
-- Table: Request_Additional_Info_Metadata
CREATE TABLE Request_Additional_Info_Metadata (
category_id VARCHAR(50),
field_name_key VARCHAR(100),
field_type VARCHAR(20), -- 'string', 'int', 'float'
status VARCHAR(10) DEFAULT 'active', -- 'active' or 'inactive'
PRIMARY KEY (category_id, field_name_key)
);Purpose:
Stores the actual field values submitted by users for each request.
Key Fields:
-
request_id: Unique identifier for the request -
category_id: Category of the request (foreign key to Help_Category) -
field_name_key: Field name from metadata -
field_value: Actual user input (e.g., L, Drop-off)
SQL Definition:
-- Table: Request_Additional_Info
CREATE TABLE Request_Additional_Info (
request_id BIGINT,
category_id VARCHAR(50),
field_name_key VARCHAR(100),
field_value TEXT,
PRIMARY KEY (request_id, field_name_key),
FOREIGN KEY (request_id) REFERENCES Request(request_id),
FOREIGN KEY (category_id) REFERENCES Help_Category(category_id)
);| Method | Endpoint | Description | Response Type |
|---|---|---|---|
| GET | /dev/requests/v0.0.1/helpCategories |
Get all help categories in a hierarchical structure | List<HelpCategoryDto> |
| GET | /dev/requests/v0.0.1/helpCategories/parent/{parentId} |
Get immediate children of a specific parent category ID | List<HelpCategoryMapDto> |
| GET | /dev/requests/v0.0.1/helpCategories/{catId} |
Get categories that start with the given catId prefix | List<HelpCategory> |
| GET | /dev/requests/v0.0.1/helpCategories/categoryMap |
Get full flat map of parent-child category relations | Map<String, List<String>> |
| cat_id | cat_name | cat_desc | description | path | release |
|---|---|---|---|---|---|
| 0.0.0.0.0 | GENERAL_CATEGORY | GENERAL_CATEGORY_DESC | A general or fallback category used when no specific match is available. | 0.0.0.0.0 | 1.0 MVP |
| 1 | FOOD_AND_ESSENTIALS_SUPPORT | FOOD_AND_ESSENTIALS_SUPPORT_DESC | Parent category for all food and basic essentials-related assistance. | 1 | 1.0 MVP |
| 1.1 | FOOD_ASSISTANCE | FOOD_ASSISTANCE_DESC | Help users find food banks, pantries, and government meal programs. | 1/1.1 | 1.0 MVP |
| 1.2 | GROCERY_SHOPPING_AND_DELIVERY | GROCERY_SHOPPING_AND_DELIVERY_DESC | Request help with grocery shopping and doorstep delivery by volunteers. | 1/1.2 | 1.0 MVP |
| 1.3 | COOKING_HELP | COOKING_HELP_DESC | Users can request help from volunteers to assist with basic cooking and kitchen tasks. | 1/1.3 | 1.0 MVP |
| 2 | CLOTHING_SUPPORT | CLOTHING_SUPPORT_DESC | Parent category for all clothing-related assistance and services. | 2 | 1.0 MVP |
| 2.1 | DONATE_CLOTHES | DONATE_CLOTHES_DESC | Allow users (donors) to donate clothes based on their location. | 2/2.1 | 1.0 MVP |
| 2.2 | BORROW_CLOTHES | BORROW_CLOTHES_DESC | Allow users to borrow clothes easily via the platform. | 2/2.2 | 1.0 MVP |
| 2.3 | EMERGENCY_ASSISTANCE | EMERGENCY_ASSISTANCE_DESC | Subcategory for emergency needs including clothing, food, and shelter during crises. | 2/2.3 | 1.0 MVP |
| 2.3.1 | EMERGENCY_CLOTHING_ASSISTANCE | EMERGENCY_CLOTHING_ASSISTANCE_DESC | Enable users in crisis situations (e.g., natural disasters, sudden displacement) to request clothing help. | 2/2.3/2.3.1 | 1.0 MVP |
| 2.4 | SEASONAL_DRIVE_NOTIFICATION | SEASONAL_DRIVE_NOTIFICATION_DESC | Notify users when seasonal clothing drives are active, allowing them to donate or request items. | 2/2.4 | 1.0 MVP |
| 2.5 | TAILORING | TAILORING_DESC | Users can request clothing repair (e.g., seams, zippers) via volunteers or local tailoring partners. | 2/2.5 | 1.0 MVP |
| 3 | HOUSING_SUPPORT | HOUSING_SUPPORT_DESC | Parent category for all housing-related assistance and services. | 3 | 1.0 MVP |
| 3.1 | FIND_A_ROOMMATE | FIND_A_ROOMMATE_DESC | Help users find compatible roommates by posting listings or providing compatibility guidance. | 3/3.1 | 1.0 MVP |
| 3.2 | RENTING_SUPPORT | RENTING_SUPPORT_DESC | Assist with understanding rental agreements, finding rental listings, and navigating tenant rights. | 3/3.2 | 1.0 MVP |
| 3.3 | HOUSEHOLD_ITEM_EXCHANGE | HOUSEHOLD_ITEM_EXCHANGE_DESC | Help users buy or sell secondhand furniture and home essentials (remote). | 3/3.3 | 1.0 MVP |
| 3.4 | MOVING_ASSISTANCE | MOVING_ASSISTANCE_DESC | In-person support for packing, sorting, or organizing small items during a move. | 3/3.4 | 1.0 MVP |
| 3.5 | CLEANING_HELP | CLEANING_HELP_DESC | In-person support for light cleaning tasks such as dusting, sweeping, and tidying common areas. | 3/3.5 | 1.0 MVP |
| 3.6 | HOME_REPAIR_SUPPORT | HOME_REPAIR_SUPPORT_DESC | Support for non-urgent minor repairs like furniture fixes, plumbing, or appliance help. | 3/3.6 | 1.0 MVP |
| 3.7 | UTILITIES_SETUP | UTILITIES_SETUP_DESC | Assistance setting up internet, electricity, water, and other services during a move-in. | 3/3.7 | 1.0 MVP |
| 4 | EDUCATION_CAREER_SUPPORT | EDUCATION_CAREER_SUPPORT_DESC | Parent category for education and career-related help. | 4 | 1.0 MVP |
| 4.1 | COLLEGE_APPLICATION_HELP | COLLEGE_APPLICATION_HELP_DESC | Guidance for navigating college application tasks. | 4/4.1 | 1.0 MVP |
| 4.2 | SOP_ESSAY_REVIEW | SOP_ESSAY_REVIEW_DESC | Review and feedback on SOPs, essays, and academic statements. | 4/4.2 | 1.0 MVP |
| 4.3 | TUTORING | TUTORING_DESC | Academic tutoring for specific subjects or standardized tests. | 4/4.3 | 1.0 MVP |
| 5 | HEALTHCARE_WELLNESS_SUPPORT | HEALTHCARE_WELLNESS_SUPPORT_DESC | Parent category for health-related assistance and non-clinical wellness support. | 5 | 1.0 MVP |
| 5.1 | MEDICAL_NAVIGATION | MEDICAL_NAVIGATION_DESC | Help users find appropriate professionals or clinics. | 5/5.1 | 1.0 MVP |
| 5.2 | MEDICINE_DELIVERY | MEDICINE_DELIVERY_DESC | Assist with OTC medication pickup or pharmacy navigation. | 5/5.2 | 1.0 MVP |
| 5.3 | MENTAL_WELLBEING_SUPPORT | MENTAL_WELLBEING_SUPPORT_DESC | Access general mental health resources or referrals. | 5/5.3 | 1.0 MVP |
| 5.4 | MEDICATION_REMINDERS | MEDICATION_REMINDERS_DESC | Set up non-clinical reminders for OTC medication or supplements. | 5/5.4 | 1.0 MVP |
| 5.5 | HEALTH_EDUCATION_GUIDANCE | HEALTH_EDUCATION_GUIDANCE_DESC | Wellness awareness on hygiene, sleep, nutrition, etc. | 5/5.5 | 1.0 MVP |
| 6 | ELDERLY_SUPPORT | ELDERLY_SUPPORT_DESC | Parent category for elderly and community-related support. | 6 | 1.0 MVP |
| 6.1 | SENIOR_LIVING_RELOCATION | SENIOR_LIVING_RELOCATION_DESC | Help seniors find housing and assist with the moving process. | 6/6.1 | 1.0 MVP |
| 6.2 | DIGITAL_SUPPORT_FOR_SENIORS | DIGITAL_SUPPORT_FOR_SENIORS_DESC | Support with using phones, tablets, and apps. | 6/6.2 | 1.0 MVP |
| 6.3 | MEDICAL_HELP | MEDICAL_HELP_DESC | Medication reminders or health device setup (non-clinical). | 6/6.3 | 1.0 MVP |
| 6.4 | ERRANDS_TRANSPORTATION | ERRANDS_TRANSPORTATION_DESC | Assistance with errands or transport to appointments. | 6/6.4 | 1.0 MVP |
| 6.5 | SOCIAL_CONNECTION | SOCIAL_CONNECTION_DESC | Companionship and social activities (calls, walks, games). | 6/6.5 | 1.0 MVP |
| 6.6 | MEAL_SUPPORT | MEAL_SUPPORT_DESC | Help cooking meals or prepping food based on dietary needs. | 6/6.6 | 1.0 MVP |
| field_id | field_name_key | field_type | status |
|---|---|---|---|
| 1.1.A | PREFERRED_MEAL_TYPE | list | active |
| 1.1.B | DIETARY_RESTRICTIONS | string | active |
| 1.1.C | HOUSEHOLD_SIZE | int | active |
| 1.2.A | GROCERY_LIST | string | active |
| 1.2.B | DELIVERY_ADDRESS | string | active |
| 1.2.C | PREFERRED_TIME | string | active |
| 1.2.D | PAYMENT_METHOD | string | active |
| 1.3.A | COOKING_TASK | string | active |
| 1.3.B | RECIPE_PREFERENCE | string | active |
| 1.3.C | KITCHEN_EQUIPMENT | string | active |
| 2.1.A | CATEGORY | string | active |
| 2.1.B | SIZE | string | active |
| 2.1.C | CONDITION | string | active |
| 2.1.D | IMAGE | string | active |
| 2.1.E | LOCATION | string | active |
| 2.1.F | DROP_OR_PICKUP | string | active |
| 2.2.A | ITEM_NAME | string | active |
| 2.2.B | CATEGORY | string | active |
| 2.2.C | SIZE | string | active |
| 2.2.D | CONDITION | string | active |
| 2.2.E | QUANTITY | int | active |
| 2.2.F | IMAGE | string | active |
| 2.2.G | REQUEST_TYPE | string | active |
| 2.2.H | PICKUP_DATETIME | string | active |
| 2.3.1.A | NUM_ADULTS | int | active |
| 2.3.1.B | NUM_CHILDREN | int | active |
| 2.4.A | ALERT_TYPE | string | active |
| 2.4.B | SIZE | string | active |
| 2.4.C | DATE_RANGE | string | active |
| 2.5.A | GARMENT_DETAILS | string | active |
| 2.5.B | IMAGES | string | active |
| 2.5.C | DELIVERY_METHOD | string | active |
| 3.1.A | CITY_ZIP_CODE | string | active |
| 3.1.B | RENT_RANGE | string | active |
| 3.1.C | PROPERTY_TYPE | string | active |
| 3.1.D | HOUSE_TYPE | string | active |
| 3.1.E | AGREEMENT_TYPE | string | active |
| 3.1.F | ROOMMATE_PREFERENCES | string | active |
| 3.1.G | ADDITIONAL_ROOM_CRITERIA | string | active |
| 3.1.H | AVAILABILITY_TIMELINE | string | active |
| 3.2.A | DOCUMENT_UPLOADED | string | active |
| 3.2.B | HELP_TYPE | string | active |
| 3.2.C | CONCERNS | string | active |
| 3.2.D | URGENCY | string | active |
| 3.3.A | ITEM_TYPE | string | active |
| 3.3.B | LISTING_LINK | string | active |
| 3.4.A | MOVE_IN_ADDRESS | string | active |
| 3.4.B | SUPPORT_TYPE | string | active |
| 3.4.C | SPECIAL_NEEDS | string | active |
| 3.4.D | NUM_HELPERS | int | active |
| 3.4.E | TIME_SLOT | string | active |
| 3.5.A | CLEANING_AREA | string | active |
| 3.5.B | CLEANING_TYPE | string | active |
| 3.6.A | REPAIR_TYPE | string | active |
| 3.6.B | ISSUE_DESCRIPTION | string | active |
| 3.7.A | UTILITY_TYPE | string | active |
| 3.7.B | MOVE_IN_DATE | string | active |
| 3.7.C | LOCATION | string | active |
| 4.1.A | APPLICATION_AREA | string | active |
| 4.1.B | UPLOADED_DOCUMENTS | string | active |
| 4.1.C | PREFERRED_TIMELINE | string | active |
| 4.2.A | DOCUMENT_TYPE | string | active |
| 4.2.B | FEEDBACK_TYPE | string | active |
| 4.2.C | DEADLINE | string | active |
| 4.3.A | SUBJECT | string | active |
| 4.3.B | GRADE_LEVEL | string | active |
| 4.3.C | TUTORING_MODE | string | active |
| 4.3.D | AVAILABILITY | string | active |
| 5.1.A | LOCATION | string | active |
| 5.1.B | URGENCY_LEVEL | string | active |
| 5.1.C | ACCESSIBILITY_NEEDS | string | active |
| 5.1.D | CONSULTATION_METHOD | string | active |
| 5.2.A | DELIVERY_TYPE | string | active |
| 5.2.B | ITEM_LIST | string | active |
| 5.2.C | ADDRESS | string | active |
| 5.2.D | DELIVERY_TIME | string | active |
| 5.3.A | HELP_TYPE | string | active |
| 5.3.B | APPOINTMENT_METHOD | string | active |
| 5.3.C | ZIP_CODE | string | active |
| 5.3.D | PROVIDER_TYPE | string | active |
| 5.4.A | REMINDER_METHOD | string | active |
| 5.4.B | REMINDER_TIME | string | active |
| 5.4.C | REPETITION_SCHEDULE | string | active |
| 5.4.D | DURATION | string | active |
| 5.5.A | EDUCATION_TOPIC | string | active |
| 5.5.B | PREFERRED_FORMAT | string | active |
| 6.1.A | PREFERRED_LOCATION | string | active |
| 6.1.B | BUDGET_RANGE | string | active |
| 6.1.C | FACILITY_TYPE | string | active |
| 6.1.D | MOVE_TIMELINE | string | active |
| 6.1.E | AMENITIES | string | active |
| 6.1.F | MOVE_DATE | string | active |
| 6.1.G | MOVE_ADDRESS | string | active |
| 6.1.H | DESTINATION_ADDRESS | string | active |
| 6.1.I | ITEMS_TO_MOVE | string | active |
| 6.1.J | ASSISTANCE_TYPE | string | active |
| 6.2.A | DEVICE_TYPE | string | active |
| 6.2.B | DEVICE_BRAND | string | active |
| 6.2.C | TECH_HELP_TYPE | string | active |
| 6.3.A | MEDICATION_COUNT | int | active |
| 6.3.B | REMINDER_TYPE | string | active |
| 6.3.C | SETUP_MODE | string | active |
| 6.3.D | HEALTH_DEVICE_TYPE | string | active |
| 6.4.A | ERRAND_TYPE | string | active |
| 6.4.B | PICKUP_LOCATION | string | active |
| 6.4.C | DELIVERY_LOCATION | string | active |
| 6.4.D | TRIP_TYPE | string | active |
| 6.4.E | TRANSPORT_MODE | string | active |
| 6.4.F | ACCESSIBILITY_NEEDS | string | active |
| 6.4.G | APPOINTMENT_TYPE | string | active |
| 6.4.H | SCHEDULING_MODE | string | active |
| 6.5.A | SOCIAL_ACTIVITY | string | active |
| 6.5.B | SOCIAL_FREQUENCY | string | active |
| 6.6.A | MEAL_HELP_TYPE | string | active |
| 6.6.B | MEAL_LOCATION | string | active |
| 6.6.C | DIETARY_PREFERENCES | string | active |
| 6.6.D | MEAL_SCHEDULE | string | active |
List type should be like this: 1.1.A Meal Type 1.1.A.1 Vegetarian 1.1.A.2 Non Vegetarian 1.1.A.3 Kosher
| request_id | category_id | field_name_key | field_value |
|---|---|---|---|
| 3001 | 1.1 | PREFERRED_MEAL_TYPE | Vegetarian |
| 3003 | 1.3 | KITCHEN_EQUIPMENT | Stove, Pot, Knife |
| 2001 | 2.1 | CATEGORY | Winter Jackets |
| 5005 | 5.5 | PREFERRED_FORMAT | PDF Booklet |
| 5001 | 6.1 | PREFERRED_LOCATION | San Jose, CA |
| 5001 | 6.1 | FACILITY_TYPE | Assisted Living |
| 5006 | 6.6 | DIETARY_PREFERENCES | Vegetarian |
* These values will be generated dynamically
Many top level help categories can be further classified into sub help categories forming a small tree of help category hierarchy. To store these help category hierarchy, following proposal is made. Top level help categories get numerical numbers like 1, 2, 3 etc. Next level sub help categories get the decimal numbers e.g. 1.1, 1.2, 1.3 etc. Their sub categories get 100th numbers e.g. 1.1.1, 1.1.2, 1.1.3 etc.
In the above example, 1:Banking --> 1.1:Retail Banking --> 1.1.1:Accounts --> 1.1.1.1:Savings Account --> 1.1.1.1.1:Personal Savings, 1.Banking --> 1.2:Investment Banking --> 1.2.1:Corporate Finance --> 1.2.1.2:Equity Capital Markets --> 1.2.1.2.2:Follow On Offerings. Every main or sub help category will have a unique identifier defined in our database. In memory, this can be stored as a Hashtable (Numeric id will be the key, string constant will be the value)
Parent --> child relationship of help categories is stored in a mapping table with two columns Parent and Child. This mapping table stored only the number ids e.g 1.1 --> 1.1.1, 1.1 --> 1.1.2. This means 1.1 help category has two children 1.1.1 and 1.1.2.
Database stores only the string constants. These string constants will be translated to all supported languages. In the front end, right before display, the translated strings will be sorted and displayed to the end user.
Whenever a new request object is inserted in the Request table, we create a unique identifier using a sequence generator. In this row, we insert the request category numeric identifier e.g. 1.2.1.3.4. This row also stores all common request attributes like type, priority, status etc.
We use another table, Request_Additional_Info_Metadata to store all the additional field information needed for this help category. The primary key of this table is request category numeric id. Two other fields contain the Name as string constant and type of each additional field as integer, string, float. By querying this table, we can get as many additional fields as needed for a given help category. Name column stores the string constants that can be translated.
Request_Additional_Info table contains the actual values when a new help request is created for this help category. Each row in this table stores one name-value pair for each additional field of this help category. For e.g. if a help category has one additional field, this table contains the request object unique identifier, request category numeric id, name of the additional field and its value. If this help category has 5 additional fields, then this table will insert all those 5 rows.
To process any help category instance, Request micro service needs to get all the standard data from the main Request table and then look into Request_Additional_Info table for any possible additional attributes. All these additional attributes will be stored in another name-value structure and passed on to the front end.
During database instance creation, along with Request table creation, we will also create Request_Additional_Info_Metadata table. In Create New Help Request page, we use this metadata to render the required additional fields when a help category is selected in a separate section by making an API to the Request micro service. When this request instance is created, request standard values are inserted in the Request table first and use the new unique request identifier to insert the additional info in to the Request_Additional_Info table.
Please try to insert the types in alphabetically sorted order so that it is easy to read.
-
Banking
-
Books
-
Clothes
-
College Admissions
-
Cooking
-
Dance
-
Education
- Elementary
- Middle School
- High School
- University
-
Employment
-
Finance
-
Food
-
Gardening
-
General
-
Homelessness
-
Housing
-
Investing
-
Jobs
-
Legal
-
Matrimonial
-
Medical
- Brain
- Depression
- Eye
- Hand
- Head
- Leg
-
Music
-
Rental
-
School
-
Shopping
-
Sports
- Baseball
- Basketball
- Cricket
- Handball
- Jogging
- Hockey
- Running
- Tennis
-
Stocks
-
Travel
-
Tourism