Skip to content

natasha-chen/ObjectWise

 
 

Repository files navigation

ObjectWise - Universal Object Identification & Instruction Platform

ObjectWise is a comprehensive Progressive Web Application that allows users to identify any object using their camera and receive step-by-step instructions on how to use it safely and effectively.

🌟 Features

Core Functionality

  • Real-time Object Recognition: Camera-based object identification with confidence scoring
  • Comprehensive Instructions: Step-by-step guides with visual annotations and difficulty levels
  • Safety First: Prominent safety warnings, age restrictions, and emergency procedures
  • Community Powered: User-contributed tips, tricks, and alternative methods
  • Offline Support: Works offline with cached object database

Key Components

  • Camera Integration: Real-time capture with cropping guides and multiple angle support
  • Instruction Engine: Visual overlays, difficulty indicators, and time estimates
  • Safety System: Critical warnings, required equipment, and emergency procedures
  • Knowledge Database: 100+ objects across 8 categories with detailed information
  • Community Features: Tips sharing, expert verification, and user ratings

🚀 Quick Start

Installation

npm install

Development

npm run dev

Runs the app in development mode on http://localhost:3000

Production Build

npm run build

Creates an optimized production build

Linting

npm run lint

Checks code quality and style

📱 PWA Features

ObjectWise is designed as a Progressive Web App with:

  • Offline functionality with cached object database
  • Install to home screen capability
  • Background sync for community features
  • Push notifications for new objects
  • Responsive design for all devices

🛠️ Technology Stack

  • Frontend: React 18 with React Router
  • Build Tool: Webpack 5 with Babel
  • PWA: Workbox for service worker and caching
  • Storage: LocalForage for offline data
  • Styling: Modern CSS with backdrop filters and gradients
  • Computer Vision: Ready for Google Vision API integration

📂 Project Structure

src/
├── components/          # React components
│   ├── CameraCapture.js    # Main camera interface
│   ├── ObjectDetails.js    # Object information display
│   ├── InstructionViewer.js # Step-by-step instructions
│   ├── SafetyWarnings.js   # Safety information
│   ├── CommunityTips.js    # User-generated content
│   ├── SearchPage.js       # Object search functionality
│   └── Navigation.js       # Bottom navigation
├── services/            # Business logic and data management
│   ├── ObjectContext.js    # React context for state
│   └── cacheService.js     # Offline storage management
├── data/               # Static data and database
│   └── objectDatabase.js   # Object definitions
├── utils/              # Utility functions
│   └── instructionTemplates.js # Instruction templates
└── styles/             # CSS styling
    └── global.css          # Global styles

🎯 Object Categories

  • Kitchen Tools: Knives, appliances, cooking equipment
  • Power Tools: Drills, saws, power equipment
  • Hand Tools: Screwdrivers, hammers, manual tools
  • Plants: Houseplants, care instructions, maintenance
  • Safety Equipment: Fire extinguishers, first aid, protective gear
  • Electronics: Smartphones, computers, devices
  • Appliances: Washing machines, coffee makers, home appliances
  • Sports Equipment: Bicycles, exercise equipment, sports gear

🔒 Safety Features

ObjectWise prioritizes user safety with:

  • Critical Safety Warnings: Red-alert styling for dangerous operations
  • Age Restrictions: Minimum age requirements and supervision guidelines
  • Required Safety Equipment: PPE recommendations and requirements
  • Emergency Procedures: Step-by-step emergency response guides
  • Common Mistakes: What to avoid and why it's dangerous

🌐 Community Features

  • Tips & Tricks: User-submitted advice and alternative methods
  • Expert Verification: Professional validation of community content
  • Rating System: Helpful/not helpful voting on tips
  • Regional Variations: Local knowledge and cultural differences
  • Contribution Tracking: Leaderboards and recognition for top contributors

🎨 UI/UX Design

  • Camera-First Design: Intuitive capture interface with visual guides
  • Progressive Disclosure: Information organized by tabs and difficulty levels
  • Accessibility: Screen reader support and keyboard navigation
  • Mobile Optimized: Touch-friendly controls and responsive layout
  • Offline Indicators: Clear status when working offline

🔧 Development

Adding New Objects

  1. Use generateInstructionSkeleton() from instructionTemplates.js
  2. Add to objectDatabase.js with complete safety information
  3. Update category objects array
  4. Test with safety validation

Extending Categories

  1. Add new category to objectCategories
  2. Create instruction template in instructionTemplates.js
  3. Update search and filter logic
  4. Add category-specific styling

📊 Performance

  • Webpack code splitting for optimal loading
  • Image optimization and lazy loading
  • Service worker caching strategies
  • LocalStorage for fast offline access
  • Debounced search for smooth UX

🌍 Internationalization Ready

  • Template system supports multiple languages
  • Cultural variations in object usage
  • Regional safety requirements
  • Metric/Imperial unit conversion

🚀 Future Enhancements

  • Real computer vision API integration
  • AR overlay for in-context instructions
  • Voice-guided instructions
  • Video tutorial integration
  • Multi-language support
  • Advanced search with filters

📄 License

MIT License - feel free to use this project as a starting point for your own object instruction platform.

🤝 Contributing

  1. Fork the repository
  2. Create feature branch
  3. Add comprehensive safety information
  4. Test thoroughly with different object types
  5. Submit pull request

ObjectWise - Because everyone deserves to know how to use everything safely. 🛡️✨

About

ignition hacks project

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • JavaScript 81.1%
  • CSS 17.3%
  • HTML 1.6%