Skip to content

YogiSunil/AidLocator

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

41 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

οΏ½ AidLocator

*Connecting Communities with Criti## πŸ“± User Interface Highlights

🎨 Design Philosophy

  • Clean & Modern: Minimalist design focusing on usability
  • Accessibility First: High contrast, keyboard navigation, screen reader support
  • Mobile Responsive: Touch-friendly interfaces optimized for all screen sizes
  • Consistent Branding: Cohesive color scheme and typography throughout

πŸ–₯️ Key Interface Elements

  • Emergency Header: Quick access to crisis resources
  • Mode Toggle: Seamless switching between "Need Help" and "Help Someone" modes
  • Floating Action Buttons: Always-accessible primary actions
  • Custom Scrollbars: Enhanced scrolling experience with custom styling
  • Smooth Animations: Micro-interactions that enhance user experience

πŸ› οΈ Technology Stack

Frontend Technologies

Technology Version Purpose
React 19.1.0 UI Framework with latest concurrent features
Redux Toolkit 2.8.1 State management and API caching
Tailwind CSS 3.x Utility-first CSS framework
React-Leaflet 5.0.0 Interactive map components
Leaflet 1.9.4 Core mapping functionality
Axios 1.9.0 HTTP client for API requests
Fuse.js 7.1.0 Fuzzy search functionality

Backend & APIs

Service Purpose
OpenStreetMap Overpass API Real-time amenity and resource data
Nominatim API Geocoding and reverse geocoding
Custom ResourceAPI Unified interface for multiple data sources
Express Server Backend API and middleware

Development Tools

Tool Purpose
Create React App Project scaffolding and build system
ESLint Code linting and quality assurance
Prettier Code formatting
React Scripts Development and build processes
React
Redux Toolkit
Tailwind CSS
OpenStreetMap
License

AidLocator is a modern, real-time community resource discovery platform that connects people in need with essential services including food banks, shelters, healthcare facilities, and social services. Built with cutting-edge React technology and powered by OpenStreetMap's comprehensive database, AidLocator provides an intuitive, accessible way to find and contribute community resources.

🌟 Overview

Our platform serves dual purposes: finding help when you need it, and providing help when you can offer it. With real-time data integration, advanced search capabilities, and an AI-powered assistant, AidLocator makes community support more accessible than ever.

🎯 Mission: Eliminate barriers between people in crisis and the resources available to help them.

✨ Key Features

οΏ½ Advanced Resource Discovery

  • Real-Time Geolocation: Automatic detection of user location with privacy controls
  • Smart Search Interface: Natural language search with AI-powered suggestions
  • Category Filtering: 10+ resource categories including food, shelter, healthcare, mental health, education, employment, clothing, transportation, legal aid, and financial assistance
  • Distance-Based Results: Resources sorted by proximity and relevance
  • Live Data Integration: Real-time resource information from OpenStreetMap and community contributions

πŸ—ΊοΈ Interactive Mapping Experience

  • Floating Map Design: Sticky map interface that stays visible while browsing
  • Custom Route Planning: Built-in routing with turn-by-turn directions
  • Multi-Layer Visualization: Different markers for various resource types
  • Responsive Design: Optimized for desktop, tablet, and mobile devices
  • Accessibility Features: Screen reader compatible with WCAG guidelines

🀝 Community Contribution Platform

  • Modernized Add Resource Form: Professional, step-by-step resource submission
  • 10 Resource Categories: Comprehensive categorization with intuitive icons
  • Real-Time Validation: Form validation with helpful error messages
  • Multiple Access Methods: Header button, floating action button, and modal interface
  • Geocoding Integration: Automatic coordinate generation from addresses

πŸ€– AI-Powered Assistant

  • Contextual Help: Intelligent chatbot for resource recommendations
  • Natural Language Processing: Understanding complex queries and providing relevant results
  • Emergency Support: Quick access to crisis resources and emergency contacts
  • Multi-Language Support: Assistance in multiple languages for diverse communities

πŸš€ Modern Architecture

  • React 19: Latest React features with concurrent rendering and optimizations
  • Redux Toolkit: Efficient state management with RTK Query for API calls
  • Tailwind CSS 3: Utility-first styling with custom design system
  • Progressive Web App: Installable app experience with offline capabilities
  • Performance Optimized: Lazy loading, code splitting, and optimized bundle sizes

🧠 How AI Is Used & Why It’s Helpful

Artificial Intelligence was integrated into AidLocator to make the app more intelligent and user-centric. Here's how AI improved the app:

  • Smart Search Interpretation: The AI understands context and needs without relying solely on keyword filters.
  • During Development: OpenAI (ChatGPT) helped with:
    • Code generation and optimization
    • UI/UX decisions
    • Geolocation and filtering logic
    • AI backend integration
    • Debugging and edge case handling

Result: The AI integration made the system smarter, more intuitive, and capable of delivering real help in real-time.

πŸš€ Quick Start Guide

Prerequisites

  • Node.js (v16.0.0 or higher)
  • npm (v7.0.0 or higher)
  • Modern web browser with geolocation support

Installation

  1. Clone the Repository

    git clone https://github.com/your-username/AidLocator.git
    cd AidLocator/aidlocatoor
  2. Install Dependencies

    npm install
  3. Environment Setup (Optional)

    # Create .env file for custom configurations
    cp .env.example .env
  4. Start Development Server

    npm start

    Application will open at: http://localhost:3000

  5. Build for Production

    npm run build

Development Commands

npm start          # Start development server
npm test           # Run test suite
npm run build      # Create production build
npm run eject      # Eject from Create React App (⚠️ irreversible)

πŸ“‹ Project Structure

aidlocatoor/
β”œβ”€β”€ public/                 # Static assets
β”‚   β”œβ”€β”€ index.html         # HTML template
β”‚   └── manifest.json      # PWA configuration
β”œβ”€β”€ src/
β”‚   β”œβ”€β”€ components/        # React components
β”‚   β”‚   β”œβ”€β”€ AddResourceForm.jsx      # Modern resource submission form
β”‚   β”‚   β”œβ”€β”€ AddResourceModal.jsx     # Modal wrapper for form
β”‚   β”‚   β”œβ”€β”€ AiLocationSearch.jsx     # AI-powered search interface
β”‚   β”‚   β”œβ”€β”€ Chatbot.jsx             # AI assistant component
β”‚   β”‚   β”œβ”€β”€ EmergencyHeader.jsx     # Crisis resource header
β”‚   β”‚   β”œβ”€β”€ Mapview.jsx             # Interactive map component
β”‚   β”‚   β”œβ”€β”€ NearbyResourceList.jsx  # Resource listing component
β”‚   β”‚   └── SearchInterface.jsx     # Main search interface
β”‚   β”œβ”€β”€ features/          # Redux slices and logic
β”‚   β”‚   └── resources/     # Resource management
β”‚   β”œβ”€β”€ redux/             # Store configuration
β”‚   β”œβ”€β”€ services/          # API services
β”‚   β”‚   └── resourceAPI.js # Unified resource API
β”‚   β”œβ”€β”€ utils/             # Utility functions
β”‚   β”œβ”€β”€ App.js             # Main application component
β”‚   β”œβ”€β”€ index.js          # Application entry point
β”‚   └── index.css         # Global styles and custom CSS
β”œβ”€β”€ package.json          # Dependencies and scripts
└── README.md            # This file

🎯 Usage Guide

For People Seeking Help

  1. Enable Location Services: Allow location access for personalized results
  2. Select "Need Help" Mode: Click the mode toggle in the interface
  3. Search for Resources: Use the search bar or browse by category
  4. View Details: Click on resources for contact info, hours, and directions
  5. Get Directions: Use built-in routing to navigate to resources

For Community Contributors

  1. Switch to "Help Someone" Mode: Toggle to contribution mode
  2. Add New Resource: Click the green "Add Resource" button or floating action button
  3. Fill Resource Details: Complete the comprehensive form with resource information
  4. Submit: Your resource will be added to help others in the community

AI Assistant Features

  • Natural Language Queries: "I need food assistance near downtown"
  • Emergency Support: Quick access to crisis hotlines and emergency services
  • Resource Recommendations: Personalized suggestions based on your needs
  • Multi-Language Support: Assistance available in multiple languages

πŸ”§ API Integration

OpenStreetMap Integration

// Example: Fetching nearby food resources
const foodResources = await resourceAPI.searchResources({
  type: 'food',
  latitude: 37.9735,
  longitude: -122.5311,
  radius: 5000 // 5km radius
});

Resource Categories

  • 🍽️ Food & Meals: Food banks, soup kitchens, free meals
  • 🏠 Shelter & Housing: Homeless shelters, temporary housing
  • πŸ₯ Healthcare: Clinics, hospitals, mental health services
  • 🧠 Mental Health: Counseling, support groups, crisis intervention
  • πŸ“š Education: Tutoring, adult education, skill training
  • πŸ’Ό Employment: Job placement, career counseling, training programs
  • πŸ‘• Clothing: Clothing banks, uniform assistance
  • 🚌 Transportation: Public transit assistance, ride programs
  • βš–οΈ Legal Aid: Free legal services, advocacy
  • πŸ’° Financial Aid: Emergency assistance, bill payment help

🀝 Contributing

We welcome contributions from developers, designers, and community advocates! Here's how you can help:

Development Contributions

  1. Fork the repository
  2. Create a feature branch (git checkout -b feature/amazing-feature)
  3. Commit your changes (git commit -m 'Add amazing feature')
  4. Push to the branch (git push origin feature/amazing-feature)
  5. Open a Pull Request

Resource Data Contributions

  • Report missing or outdated resources through the app
  • Suggest new resource categories
  • Provide feedback on search accuracy

Design & UX Contributions

  • Submit UI/UX improvements
  • Accessibility enhancements
  • Mobile optimization suggestions

πŸ› Bug Reports & Feature Requests

Found a bug? Please open an issue with:

  • Detailed description of the problem
  • Steps to reproduce the issue
  • Screenshots (if applicable)
  • Device/browser information

Have a feature idea? We'd love to hear it! Open an issue with:

  • Clear description of the proposed feature
  • Use case and benefits
  • Any relevant mockups or examples

πŸ“„ License

This project is licensed under the MIT License - see the LICENSE file for details.

πŸ™ Acknowledgements

Open Source Technologies

  • OpenStreetMap Community - Comprehensive, open geographic database
  • Leaflet - Leading open-source JavaScript mapping library
  • React Team - Modern, efficient frontend framework
  • Redux Toolkit - Predictable state management
  • Tailwind Labs - Utility-first CSS framework

Data Sources

  • OpenStreetMap Contributors - Global geographic data
  • Overpass API - Real-time OSM data queries
  • Nominatim - OpenStreetMap geocoding service

Community Support

  • GitHub Community - Code reviews and feedback
  • Stack Overflow - Technical problem solving
  • React Community - Best practices and patterns

πŸ“ž Contact & Support

Emergency Resources: If you're in immediate crisis, please contact local emergency services (911 in the US) or visit your nearest emergency room.


Built with ❀️ for stronger, more connected communities

⭐ Star this repo β€’ 🍴 Fork it β€’ πŸ“± Try the Demo

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published