A sophisticated web application designed to provide accessible urban navigation for users with mobility challenges, visual impairments, and other accessibility needs.
- Python 3.13+ installed
- Basic terminal/command line knowledge
-
Navigate to the project directory:
cd /Users/skandaa/Desktop/aura/aura-sophisticated -
Start the backend server:
cd backend python main.py -
Access the application:
- Open your web browser
- Go to:
http://localhost:8001
cd backend
uvicorn main:app --host 0.0.0.0 --port 8001 --reloaddocker-compose up --build- Address Mode: Enter readable addresses like "Golden Gate Bridge, San Francisco, CA"
- Coordinate Mode: Traditional latitude/longitude input
- Geocoding: Automatic conversion between addresses and coordinates
- Radio Button Toggle: Easy switching between input modes
- Advanced Accessibility Routing: 7-component accessibility scoring system
- Real-time Obstacle Detection: Community-driven obstacle reporting and verification
- Comprehensive Route Analysis: Surface quality, slope analysis, safety scoring
- Alternative Route Generation: Multiple route options with detailed comparisons
- Accessibility Preferences: Customizable mobility aid and preference settings
- Geospatial Processing: Sophisticated coordinate analysis and route optimization
- Analytics Dashboard: Comprehensive usage analytics and impact tracking
- Obstacle Management: Community reporting system with severity classification
- Progressive Web App: Responsive design with accessibility-first approach
backend/
βββ main.py # FastAPI application entry point
βββ app/
β βββ models/
β β βββ database.py # SQLAlchemy models and database setup
β β βββ schemas.py # Pydantic models for API validation
β βββ services/
β β βββ routing_engine.py # Advanced routing engine with accessibility analysis
β β βββ obstacle_detector.py # Obstacle detection and management system
β β βββ accessibility_analyzer.py # 7-component accessibility scoring
β β βββ geospatial_processor.py # Spatial analysis and route processing
β βββ api/
β β βββ routes.py # API endpoints and route handlers
β βββ config.py # Configuration management
frontend/
βββ index.html # Main application interface
βββ src/
β βββ app.js # Main application controller
β βββ components/
β β βββ RouteDisplay.js # Route visualization and results
β β βββ ObstacleReporter.js # Obstacle reporting functionality
β β βββ Analytics.js # Analytics dashboard and data visualization
β βββ styles/
β βββ main.css # Comprehensive styling with accessibility focus
- Select "Address" or "Coordinates" using radio buttons at the top of the form
- Address Mode: Type readable addresses like "Golden Gate Bridge, San Francisco, CA"
- Coordinate Mode: Enter precise latitude/longitude numbers
- Start Location: Where your journey begins
- End Location: Your destination
- Click "π Find Location" to geocode addresses into coordinates
- Accessibility Priority: Choose High/Medium/Low based on your needs
- Mobility Aid: Select your mobility device (wheelchair, walker, cane, guide dog)
- Route Preferences: Check boxes for avoid stairs, prefer ramps, etc.
- Click "πΊοΈ Calculate Accessible Route"
- View detailed accessibility analysis in the results panel
- See route recommendations with accessibility scores
- Route Map: Visual representation of your accessible route
- Accessibility Score: 7-component scoring breakdown
- Alternative Routes: Multiple options with different accessibility trade-offs
- Analytics: Route statistics and performance metrics
- Check Python version:
python --version(requires 3.13+) - Install dependencies:
pip install -r requirements.txt - Verify port 8001 is available
- Check terminal for error messages
- Ensure internet connection is active
- Try different address formats (include city, state)
- Check browser console (F12) for errors
- Use more specific addresses
- Verify coordinates are valid (latitude: -90 to 90, longitude: -180 to 180)
- Ensure both start and end locations are properly set
- Check that required form fields are filled
- Try coordinates instead of addresses if geocoding fails
- This issue has been fixed - ensure you're using the latest version
- Check browser console for JavaScript errors
- Try refreshing the page and re-entering data
Popular Landmarks:
- "Golden Gate Bridge, San Francisco, CA"
- "Times Square, New York, NY"
- "Space Needle, Seattle, WA"
- "Union Station, Los Angeles, CA"
- "Freedom Trail, Boston, MA"
Accessible Destinations:
- "Museum of Science, Boston, MA"
- "Central Park Zoo, New York, NY"
- "Pier 39, San Francisco, CA"
- "Pike Place Market, Seattle, WA"
- Main Application: http://localhost:8001
- API Documentation: http://localhost:8001/api/docs
- Health Check: http://localhost:8001/health
POST /api/calculate-route- Calculate accessible routesPOST /api/geocode- Convert addresses to coordinatesPOST /api/reverse-geocode- Convert coordinates to addressesGET /api/obstacles- Retrieve obstacle dataPOST /api/obstacles- Report new obstaclesGET /api/analytics- Route analytics and statistics
- Python 3.8 or higher
- pip (Python package installer)
-
Clone or navigate to the project directory:
cd /Users/skandaa/Desktop/aura/aura-sophisticated -
Run the startup script:
./start.sh
The script will automatically:
- Create a virtual environment
- Install all dependencies
- Set up the database
- Start the application
-
Access the application:
- Main application: http://localhost:8000
- API documentation: http://localhost:8000/docs
- Interactive API explorer: http://localhost:8000/redoc
If you prefer manual setup:
# Create virtual environment
python3 -m venv venv
source venv/bin/activate # On Windows: venv\Scripts\activate
# Install dependencies
pip install -r requirements.txt
# Start the application
cd backend
uvicorn main:app --host 0.0.0.0 --port 8000 --reload- Enter Coordinates: Input start and end coordinates (latitude, longitude)
- Set Preferences: Choose mobility aid and accessibility preferences
- Calculate Route: Click "Calculate Accessible Route"
- Review Results: Analyze route options, accessibility scores, and obstacles
Use the pre-configured demo buttons for quick testing:
- Downtown Route: Times Square to Penn Station
- Campus Route: Columbia University Campus
- Park Route: Central Park Loop
- Hospital Route: Mount Sinai to Central Park
- Click the "π§ Report Obstacle" button
- Fill in obstacle details, location, and severity
- Contribute to community accessibility data
- WCAG 2.1 AA Compliance: Meets accessibility guidelines
- Keyboard Navigation: Full keyboard support
- Screen Reader Optimization: ARIA labels and semantic HTML
- High Contrast Mode: Enhanced visibility options
- Reduced Motion: Respects user motion preferences
- Semantic HTML structure
- ARIA landmarks and labels
- Focus management and keyboard traps
- Color contrast ratios > 4.5:1
- Scalable fonts and responsive design
- Surface Quality (0-100): Path surface condition and smoothness
- Slope Analysis (0-100): Gradient analysis and steep section detection
- Obstacle Avoidance (0-100): Known obstacle detection and avoidance
- Width Adequacy (0-100): Path width sufficiency for mobility aids
- Safety Score (0-100): Lighting, traffic, and general safety assessment
- Lighting Assessment (0-100): Illumination quality and visibility
- Traffic Analysis (0-100): Pedestrian traffic and congestion levels
- 80-100: High accessibility - Excellent for all users
- 60-79: Medium accessibility - Good with minor challenges
- Below 60: Low accessibility - Significant barriers present
The application follows a sophisticated multi-tier architecture:
- Presentation Layer: Modern HTML5 + vanilla JavaScript
- API Layer: FastAPI with comprehensive validation
- Business Logic: Modular service components
- Data Layer: SQLAlchemy with SQLite database
- Backend: FastAPI, SQLAlchemy, Pydantic
- Frontend: Vanilla JavaScript, CSS Grid/Flexbox
- Database: SQLite with potential PostgreSQL upgrade
- Geospatial: Geopy, Haversine, NetworkX
- Fork the repository
- Create a feature branch
- Implement changes with tests
- Submit a pull request
# Database Configuration
DATABASE_URL=sqlite:///./aura.db
# API Configuration
API_TITLE="Aura API"
API_VERSION="1.0.0"
# External Services (Optional)
MAPBOX_TOKEN=your_mapbox_token
GOOGLE_MAPS_KEY=your_google_maps_keyModify backend/app/config.py for:
- Database connections
- API rate limiting
- External service integrations
- Feature flags
Aura - Making urban navigation accessible for everyone. πβΏπΊοΈ