mirror of
https://github.com/SamyRai/turash.git
synced 2025-12-26 23:01:33 +00:00
377 lines
16 KiB
Markdown
377 lines
16 KiB
Markdown
# Comprehensive Organization Categorization System
|
|
|
|
This document provides a complete analysis of the current categorization system in the database and proposes a comprehensive, well-thought-out replacement system based on actual data analysis.
|
|
|
|
## Database Analysis Summary
|
|
|
|
**Total Organizations**: 1,280
|
|
**Data Source**: PostgreSQL database (`turash`)
|
|
**Primary Categorization**: `sector` and `subtype` fields in `organizations` table
|
|
|
|
---
|
|
|
|
## Current System Analysis
|
|
|
|
### Sector Distribution (21 sectors)
|
|
|
|
| Sector | Count | Description |
|
|
|--------|-------|-------------|
|
|
| `retail` | 248 | Retail stores and commercial establishments |
|
|
| `healthcare` | 134 | Medical facilities and healthcare providers |
|
|
| `services` | 126 | Professional and personal services |
|
|
| `automotive` | 119 | Automotive services and transportation |
|
|
| `food_beverage` | 94 | Restaurants, cafes, and food services |
|
|
| `beauty_wellness` | 79 | Beauty salons and wellness services |
|
|
| `religious` | 86 | Religious institutions and organizations |
|
|
| `education` | 117 | Educational institutions |
|
|
| `energy` | 46 | Energy production and utilities |
|
|
| `construction` | 31 | Construction and building services |
|
|
| `entertainment` | 25 | Entertainment and cultural venues |
|
|
| `financial` | 43 | Financial services and institutions |
|
|
| `hospitality` | 24 | Hotels and accommodation services |
|
|
| `manufacturing` | 18 | Manufacturing facilities |
|
|
| `government` | 17 | Government offices and agencies |
|
|
| `furniture` | 32 | Furniture and home goods |
|
|
| `other` | 28 | Miscellaneous categories |
|
|
| `sports` | 2 | Sports facilities |
|
|
| `technology` | 2 | Technology companies |
|
|
| `agriculture` | 2 | Agricultural businesses |
|
|
| *(empty)* | 17 | Organizations without sector classification |
|
|
|
|
### Subtype Distribution (19 subtypes)
|
|
|
|
| Subtype | Count | Primary Usage |
|
|
|---------|-------|---------------|
|
|
| `retail` | 202 | Consumer retail establishments |
|
|
| `healthcare` | 134 | Medical and healthcare services |
|
|
| `commercial` | 87 | Commercial and business services |
|
|
| `personal_services` | 79 | Personal care and services |
|
|
| `automotive` | 76 | Automotive services |
|
|
| `religious` | 65 | Religious institutions |
|
|
| `educational` | 104 | Educational services |
|
|
| `food_beverage` | 84 | Food and beverage services |
|
|
| `transportation` | 15 | Transportation services |
|
|
| `infrastructure` | 6 | Infrastructure services |
|
|
| `energy` | 41 | Energy services |
|
|
| `professional_services` | 19 | Professional consulting |
|
|
| `hospitality` | 16 | Hospitality services |
|
|
| `manufacturing` | 16 | Manufacturing services |
|
|
| `cultural` | 18 | Cultural and entertainment |
|
|
| `financial` | 41 | Financial services |
|
|
| `government` | 17 | Government services |
|
|
| `other` | 8 | Other services |
|
|
| `technology` | 2 | Technology services |
|
|
|
|
### Critical Issues Identified
|
|
|
|
1. **Sector-Subtype Confusion**: 699 organizations (54.6%) have identical sector and subtype values
|
|
2. **Inconsistent Classification**: Some sectors have very few organizations (agriculture: 2, sports: 2, technology: 2)
|
|
3. **Limited Granularity**: Only two levels of categorization
|
|
4. **User-Unfriendly**: Categories are not aligned with how users search for services
|
|
|
|
### Sector-Subtype Relationship Analysis
|
|
|
|
**Most Problematic Combinations** (where sector = subtype):
|
|
- `retail/retail`: 202 organizations
|
|
- `healthcare/healthcare`: 134 organizations
|
|
- `services/commercial`: 87 organizations (different but related)
|
|
- `food_beverage/food_beverage`: 84 organizations
|
|
|
|
**Well-Differentiated Combinations**:
|
|
- `beauty_wellness/personal_services`: 79 organizations
|
|
- `education/educational`: 104 organizations
|
|
- `automotive/transportation`: 15 organizations
|
|
- `religious/cultural`: 9 organizations
|
|
|
|
---
|
|
|
|
## Additional Categorization Fields Found
|
|
|
|
### Industrial Sector Codes (25 values)
|
|
Found in `industrial_sector` field (appears to be abbreviated codes):
|
|
|
|
| Code | Likely Meaning |
|
|
|------|----------------|
|
|
| `arts_centr` | Arts Center |
|
|
| `bus_statio` | Bus Station |
|
|
| `cafe` | Cafe/Restaurant |
|
|
| `car_wash` | Car Wash |
|
|
| `cinema` | Cinema/Theater |
|
|
| `clinic` | Medical Clinic |
|
|
| `college` | College |
|
|
| `community_` | Community Center |
|
|
| `fast_food` | Fast Food |
|
|
| `fire_stati` | Fire Station |
|
|
| `fuel` | Fuel Station |
|
|
| `hospital` | Hospital |
|
|
| `kindergart` | Kindergarten |
|
|
| `mortuary` | Mortuary/Funeral Services |
|
|
| `pharmacy` | Pharmacy |
|
|
| `place_of_w` | Place of Worship |
|
|
| `post_offic` | Post Office |
|
|
| `restaurant` | Restaurant |
|
|
| `school` | School |
|
|
| `social_fac` | Social Facility |
|
|
| `theatre` | Theatre |
|
|
| `townhall` | Town Hall |
|
|
| `training` | Training Center |
|
|
| `university` | University |
|
|
|
|
### Product Categories (10 categories)
|
|
From `products` table:
|
|
|
|
| Category | Description |
|
|
|----------|-------------|
|
|
| `agricultural` | Agricultural products |
|
|
| `chemicals` | Chemical products |
|
|
| `construction` | Construction materials |
|
|
| `equipment` | Equipment and machinery |
|
|
| `food` | Food products |
|
|
| `manufacturing` | Manufactured goods |
|
|
| `materials` | Raw materials |
|
|
| `oil_gas` | Oil and gas products |
|
|
| `other` | Other products |
|
|
| `services` | Service offerings |
|
|
|
|
### Site Types (4 types)
|
|
From `sites` table:
|
|
|
|
| Site Type | Description |
|
|
|-----------|-------------|
|
|
| `commercial` | Commercial properties |
|
|
| `cultural` | Cultural facilities |
|
|
| `industrial` | Industrial facilities |
|
|
| `infrastructure` | Infrastructure facilities |
|
|
|
|
### Site Ownership (2 types)
|
|
| Ownership | Description |
|
|
|-----------|-------------|
|
|
| `private` | Privately owned |
|
|
| `unknown` | Ownership unknown |
|
|
|
|
### Heritage Status (2 values)
|
|
| Status | Description |
|
|
|--------|-------------|
|
|
| `local_heritage_candidate` | Candidate for local heritage protection |
|
|
| `regional_heritage_candidate` | Candidate for regional heritage protection |
|
|
|
|
---
|
|
|
|
## Proposed Comprehensive Categorization System
|
|
|
|
### Three-Tier Hierarchical Structure
|
|
|
|
#### Tier 1: Primary Sectors (11 categories - Mutually Exclusive)
|
|
|
|
| Sector | Description | Current Sectors Included | Icon |
|
|
|--------|-------------|--------------------------|------|
|
|
| **CONSUMER_SERVICES** | Direct services to individual consumers | `beauty_wellness`, `retail`, `services` (personal) | `Scissors` |
|
|
| **PROFESSIONAL_SERVICES** | Specialized expertise and consulting | `services` (professional), `financial`, `technology` | `Briefcase` |
|
|
| **HEALTHCARE_WELLNESS** | Medical care and physical/mental wellness | `healthcare` | `Heart` |
|
|
| **EDUCATION_TRAINING** | Learning and skill development | `education` | `GraduationCap` |
|
|
| **FOOD_HOSPITALITY** | Food service and accommodation | `food_beverage`, `hospitality` | `UtensilsCrossed` |
|
|
| **RETAIL_COMMERCE** | Consumer goods and retail | `retail`, `furniture` | `ShoppingBag` |
|
|
| **MANUFACTURING_INDUSTRY** | Production and industrial activities | `manufacturing`, `construction`, `energy` | `Factory` |
|
|
| **TRANSPORTATION_LOGISTICS** | Movement of people and goods | `automotive` (transportation) | `Truck` |
|
|
| **GOVERNMENT_PUBLIC** | Public sector and government services | `government` | `Building` |
|
|
| **COMMUNITY_RELIGIOUS** | Community and religious organizations | `religious`, `entertainment`, `sports` | `Church` |
|
|
| **AGRICULTURE_RESOURCES** | Agricultural and natural resources | `agriculture` | `Leaf` |
|
|
|
|
#### Tier 2: Business Types (Operational Classifications)
|
|
|
|
| Business Type | Description | Examples |
|
|
|---------------|-------------|----------|
|
|
| **direct_service** | One-on-one personal services | Salons, tutoring, personal training |
|
|
| **professional_service** | Expert consulting and advisory | Legal, accounting, consulting |
|
|
| **retail_store** | Physical retail establishments | Shops, boutiques, stores |
|
|
| **food_establishment** | Restaurants, cafes, food service | Restaurants, cafes, food trucks |
|
|
| **healthcare_facility** | Medical and healthcare providers | Clinics, hospitals, pharmacies |
|
|
| **educational_institution** | Schools and learning centers | Schools, universities, academies |
|
|
| **manufacturing_facility** | Production and manufacturing | Factories, workshops |
|
|
| **hospitality_venue** | Accommodation and entertainment | Hotels, theaters, event spaces |
|
|
| **government_office** | Public administration | Government offices, agencies |
|
|
| **religious_institution** | Places of worship and religious orgs | Churches, temples, mosques |
|
|
| **transportation_service** | Transport and logistics | Taxi, delivery, shipping |
|
|
| **online_business** | Digital-first businesses | E-commerce, online services |
|
|
| **non_profit_organization** | Charitable and community orgs | NGOs, charities, clubs |
|
|
| **construction_contractor** | Building and construction | Contractors, builders |
|
|
| **agricultural_business** | Farming and agriculture | Farms, agricultural suppliers |
|
|
|
|
#### Tier 3: Service Categories (User-Need Based Filtering)
|
|
|
|
| Service Category | Description | User Search Context |
|
|
|------------------|-------------|-------------------|
|
|
| **essential_services** | Critical daily needs | Emergency, medical, utilities |
|
|
| **daily_living** | Everyday necessities | Groceries, banking, household |
|
|
| **personal_care** | Beauty and personal grooming | Salons, spas, fitness |
|
|
| **health_medical** | Healthcare and wellness | Doctors, hospitals, pharmacies |
|
|
| **food_dining** | Food and beverage services | Restaurants, cafes, delivery |
|
|
| **education_learning** | Educational services | Schools, tutors, training |
|
|
| **professional_business** | Business and professional services | Legal, accounting, consulting |
|
|
| **shopping_retail** | Shopping and consumer goods | Stores, markets, malls |
|
|
| **entertainment_leisure** | Recreation and entertainment | Theaters, sports, events |
|
|
| **transportation** | Getting around | Taxi, bus, delivery |
|
|
| **community_religious** | Community and spiritual services | Churches, community centers |
|
|
| **home_services** | Home and property services | Cleaning, repairs, maintenance |
|
|
| **financial_services** | Banking and financial services | Banks, ATMs, financial advice |
|
|
| **government_services** | Public services and administration | Government offices, licenses |
|
|
| **specialized_services** | Niche or specialized offerings | Unique or expert services |
|
|
|
|
---
|
|
|
|
## Migration Strategy
|
|
|
|
### Phase 1: Data Analysis & Mapping
|
|
1. **Analyze current data distribution** ✓ (Completed)
|
|
2. **Create sector-subtype mapping table**
|
|
3. **Identify edge cases and special handling**
|
|
4. **Validate mapping logic with sample data**
|
|
|
|
### Phase 2: System Implementation
|
|
1. **Add new categorization fields** to database schema
|
|
2. **Create migration scripts** for existing data
|
|
3. **Update application logic** to use new system
|
|
4. **Implement backward compatibility** during transition
|
|
|
|
### Phase 3: UI/UX Updates
|
|
1. **Redesign filtering interfaces** based on service categories
|
|
2. **Update search functionality** for new hierarchy
|
|
3. **Create admin tools** for new categorization
|
|
4. **User testing and feedback** integration
|
|
|
|
### Phase 4: Data Cleanup & Optimization
|
|
1. **Clean up legacy data** after successful migration
|
|
2. **Optimize database indexes** for new queries
|
|
3. **Update API endpoints** and documentation
|
|
4. **Performance monitoring** and optimization
|
|
|
|
---
|
|
|
|
## Benefits of New System
|
|
|
|
### For Users
|
|
- **Intuitive navigation**: Find services based on actual needs
|
|
- **Better discovery**: Multi-dimensional filtering reveals relevant options
|
|
- **Reduced cognitive load**: Categories match mental models
|
|
- **Comprehensive results**: No missed opportunities due to poor categorization
|
|
|
|
### For Administrators
|
|
- **Data quality**: Clear rules prevent inconsistent classification
|
|
- **Scalability**: Easy to add new categories without breaking logic
|
|
- **Analytics-ready**: Structured data enables better insights
|
|
- **Maintenance**: Easier to manage and update categorization
|
|
|
|
### For Developers
|
|
- **Clean architecture**: Well-defined hierarchical relationships
|
|
- **Predictable queries**: Consistent categorization patterns
|
|
- **Flexible filtering**: Support for complex search combinations
|
|
- **Future-proof**: Extensible design for new requirements
|
|
|
|
---
|
|
|
|
## Implementation Details
|
|
|
|
### Database Schema Changes
|
|
|
|
```sql
|
|
-- Add new categorization columns to organizations table
|
|
ALTER TABLE organizations ADD COLUMN primary_sector VARCHAR(50);
|
|
ALTER TABLE organizations ADD COLUMN business_types JSONB DEFAULT '[]'::jsonb;
|
|
ALTER TABLE organizations ADD COLUMN service_categories JSONB DEFAULT '[]'::jsonb;
|
|
|
|
-- Create indexes for new fields
|
|
CREATE INDEX idx_org_primary_sector ON organizations(primary_sector);
|
|
CREATE INDEX idx_org_business_types_gin ON organizations USING gin(business_types);
|
|
CREATE INDEX idx_org_service_categories_gin ON organizations USING gin(service_categories);
|
|
```
|
|
|
|
### Mapping Logic Example
|
|
|
|
```typescript
|
|
// Legacy to new system mapping
|
|
const sectorMapping: Record<string, string> = {
|
|
'retail': 'RETAIL_COMMERCE',
|
|
'healthcare': 'HEALTHCARE_WELLNESS',
|
|
'services': 'PROFESSIONAL_SERVICES', // Will be refined by subtype
|
|
'beauty_wellness': 'CONSUMER_SERVICES',
|
|
'food_beverage': 'FOOD_HOSPITALITY',
|
|
'education': 'EDUCATION_TRAINING',
|
|
'automotive': 'TRANSPORTATION_LOGISTICS',
|
|
'government': 'GOVERNMENT_PUBLIC',
|
|
'religious': 'COMMUNITY_RELIGIOUS',
|
|
'manufacturing': 'MANUFACTURING_INDUSTRY',
|
|
'financial': 'PROFESSIONAL_SERVICES',
|
|
'technology': 'PROFESSIONAL_SERVICES'
|
|
};
|
|
|
|
const subtypeToBusinessType: Record<string, string[]> = {
|
|
'retail': ['retail_store'],
|
|
'healthcare': ['healthcare_facility'],
|
|
'personal_services': ['direct_service'],
|
|
'professional_services': ['professional_service'],
|
|
'food_beverage': ['food_establishment'],
|
|
'educational': ['educational_institution'],
|
|
'transportation': ['transportation_service'],
|
|
'commercial': ['retail_store', 'professional_service'],
|
|
'religious': ['religious_institution']
|
|
};
|
|
```
|
|
|
|
### Icon Mapping Strategy
|
|
|
|
| New Category | Primary Icon | Alternative Icons |
|
|
|--------------|--------------|-------------------|
|
|
| CONSUMER_SERVICES | `Scissors` | `Sparkles`, `User` |
|
|
| PROFESSIONAL_SERVICES | `Briefcase` | `Building2`, `Users` |
|
|
| HEALTHCARE_WELLNESS | `Heart` | `Stethoscope`, `Shield` |
|
|
| EDUCATION_TRAINING | `GraduationCap` | `BookOpen`, `School` |
|
|
| FOOD_HOSPITALITY | `UtensilsCrossed` | `Coffee`, `Hotel` |
|
|
| RETAIL_COMMERCE | `ShoppingBag` | `Store`, `Package` |
|
|
| MANUFACTURING_INDUSTRY | `Factory` | `Cog`, `Wrench` |
|
|
| TRANSPORTATION_LOGISTICS | `Truck` | `Car`, `Ship` |
|
|
| GOVERNMENT_PUBLIC | `Building` | `Landmark`, `Scale` |
|
|
| COMMUNITY_RELIGIOUS | `Church` | `Users`, `Heart` |
|
|
| AGRICULTURE_RESOURCES | `Leaf` | `Sprout`, `TreePine` |
|
|
|
|
---
|
|
|
|
## Validation & Testing
|
|
|
|
### Data Integrity Checks
|
|
- [ ] All organizations have exactly one primary sector
|
|
- [ ] Business types array is not empty for active organizations
|
|
- [ ] Service categories align with primary sector
|
|
- [ ] No conflicting categorizations
|
|
|
|
### User Experience Testing
|
|
- [ ] Filter combinations return relevant results
|
|
- [ ] Search performance meets requirements
|
|
- [ ] Icon display works across all categories
|
|
- [ ] Mobile responsiveness maintained
|
|
|
|
### Performance Benchmarks
|
|
- [ ] Query performance for complex filters
|
|
- [ ] Database index effectiveness
|
|
- [ ] API response times
|
|
- [ ] Memory usage for categorization logic
|
|
|
|
---
|
|
|
|
## Future Extensions
|
|
|
|
### Advanced Features
|
|
- **User personalization**: Category preferences based on search history
|
|
- **Dynamic categorization**: AI-assisted category suggestions
|
|
- **Multi-language support**: Localized category names
|
|
- **Category relationships**: "Related to" and "Often searched with"
|
|
|
|
### Integration Points
|
|
- **External data sources**: Import categorization from business directories
|
|
- **User feedback**: Crowdsourced category improvements
|
|
- **Analytics integration**: Track category usage and effectiveness
|
|
- **Machine learning**: Automated categorization for new organizations
|
|
|
|
---
|
|
|
|
*This comprehensive system addresses all identified issues while providing a scalable, user-centric foundation for organization categorization. The three-tier structure ensures clean separation, easy filtering, and maintainable code.*
|