- 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
- 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 | 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 |
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 |
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 |
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.
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.
- 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
- 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
- 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
- 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
- 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
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.
- Node.js (v16.0.0 or higher)
- npm (v7.0.0 or higher)
- Modern web browser with geolocation support
-
Clone the Repository
git clone https://github.com/your-username/AidLocator.git cd AidLocator/aidlocatoor
-
Install Dependencies
npm install
-
Environment Setup (Optional)
# Create .env file for custom configurations cp .env.example .env
-
Start Development Server
npm start
Application will open at:
http://localhost:3000
-
Build for Production
npm run build
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)
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
- Enable Location Services: Allow location access for personalized results
- Select "Need Help" Mode: Click the mode toggle in the interface
- Search for Resources: Use the search bar or browse by category
- View Details: Click on resources for contact info, hours, and directions
- Get Directions: Use built-in routing to navigate to resources
- Switch to "Help Someone" Mode: Toggle to contribution mode
- Add New Resource: Click the green "Add Resource" button or floating action button
- Fill Resource Details: Complete the comprehensive form with resource information
- Submit: Your resource will be added to help others in the community
- 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
// Example: Fetching nearby food resources
const foodResources = await resourceAPI.searchResources({
type: 'food',
latitude: 37.9735,
longitude: -122.5311,
radius: 5000 // 5km radius
});
- π½οΈ 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
We welcome contributions from developers, designers, and community advocates! Here's how you can help:
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature
) - Commit your changes (
git commit -m 'Add amazing feature'
) - Push to the branch (
git push origin feature/amazing-feature
) - Open a Pull Request
- Report missing or outdated resources through the app
- Suggest new resource categories
- Provide feedback on search accuracy
- Submit UI/UX improvements
- Accessibility enhancements
- Mobile optimization suggestions
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
This project is licensed under the MIT License - see the LICENSE file for details.
- 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
- OpenStreetMap Contributors - Global geographic data
- Overpass API - Real-time OSM data queries
- Nominatim - OpenStreetMap geocoding service
- GitHub Community - Code reviews and feedback
- Stack Overflow - Technical problem solving
- React Community - Best practices and patterns
- Project Repository: GitHub - AidLocator
- Issues & Bug Reports: GitHub Issues
- Community Discussions: GitHub Discussions
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