Skip to content

Categories of Help Requests

Rao Bhethanabotla edited this page Dec 1, 2025 · 30 revisions

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

Reference Design

  1. Categories of Help Requests
  2. Help Category System – Design Understanding Document with Sample Data

Database Tables

1. Help_Category

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'
);

2. Request_Additional_Info_Metadata

Purpose:
Stores metadata definitions for dynamic fields required per help category.

Key Fields:

  • field_id: Links to Help_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 (active or inactive)

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)
);

3. Request_Additional_Info

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)
);

🧭 Endpoints

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>>

Help_Category

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

Request_Additional_Info_Metadata

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

Request_Additional_Info

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

1.0 MVP Supported Help Request Categories

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.

Screenshot 2025-07-05 at 10 55 52 AM

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.

Request Categories and their sub categories

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

Clone this wiki locally