A web-based smart assistant for the visually impaired, providing real-time environmental awareness through object and depth detection.- Real-time Object Detection: Uses the COCO-SSD model to identify a wide range of objects.
- Depth Estimation: Provides depth information to determine the distance of objects using the fastDepth model.
- Audio and Haptic Feedback: Alerts users to nearby objects through sound and vibration.
- Session Tracking: Records and saves detection sessions for later review.
- User Management: Allows admins to manage user roles and view user activity.
- Admin Dashboard: Provides a comprehensive overview of all session data with charts and statistics.
- Customizable Settings: Allows users to adjust settings like alert distance and feedback types.
- Progressive Web App (PWA): Can be installed on your device for an offline-first experience.
Backend:
- Framework: Node.js with Express.js
- Database: MongoDB with Mongoose
- Authentication: bcrypt, jsonwebtoken
- Dependencies:
axios,bcrypt,cors,dotenv,express,jsonwebtoken,mongodb,mongoose,nodemon
Frontend:
- Framework: React.js
- Object Detection: TensorFlow.js with COCO-SSD
- Depth Estimation: TensorFlow.js with fastDepth
- UI Libraries: Material-UI, Lucide React, Recharts
- Dependencies:
@emotion/react,@emotion/styled,@mui/material,@mui/x-charts,@tensorflow-models/coco-ssd,@tensorflow-models/depth-estimation,@tensorflow/tfjs,@tensorflow/tfjs-backend-webgl,@tensorflow/tfjs-converter,@vercel/analytics,axios,cra-template-pwa,fuse.js,jwt-decode,lucide-react,nanoid,react,react-dom,react-icons,react-router-dom,react-scripts,recharts,web-vitals
- Node.js and npm installed
- MongoDB instance (local or cloud)
-
Clone the repository:
git clone https://github.com/DhanushSaiCoder/Project-Iris.git cd Project-Iris -
Install backend dependencies:
cd backend npm install -
Install frontend dependencies:
cd ../frontend npm install
For a quicker setup, use the provided installation scripts. These scripts will install the dependencies for both the frontend and backend.
- On Windows, run:
install_all.bat
- On macOS and Linux, run:
chmod +x install_all.sh ./install_all.sh
-
Create a
.env.developmentfile in thebackenddirectory and add the following environment variables:MONGODB_URL=your_mongodb_connection_string PORT=5555 JWT_SECRET=your_jwt_secret -
The frontend is configured to proxy requests to the backend, so no separate
.envfile is required for the frontend in development.
-
Start the backend server:
cd backend npm run dev -
Start the frontend development server:
cd ../frontend npm start
The application will be available at http://localhost:3000.
To run the application and access it from other devices on your network (like a mobile phone), you can use the dev:mobile script. This is useful for testing the application on a real mobile device.
-
Build the frontend:
cd frontend npm run build -
Run the
dev:mobilescript from the root directory:npm run dev:mobile
This will start the backend server and serve the built frontend files. You can then access the application by navigating to your computer's network IP address on your mobile device.
Project-Iris/
├── backend/
│ ├── Controllers/
│ │ ├── authController.js
│ │ ├── sessionController.js
│ │ └── userController.js
│ ├── models/
│ │ ├── sessionModel.js
│ │ └── User.model.js
│ ├── routes/
│ │ ├── Auth.route.js
│ │ ├── sessionsRoute.js
│ │ └── user.route.js
│ ├── .gitignore
│ ├── package.json
│ └── server.js
├── frontend/
│ ├── build/
│ ├── public/
│ └── src/
│ ├── assets/
│ ├── components/
│ ├── context/
│ ├── hooks/
│ ├── pages/
│ ├── styles/
│ ├── utils/
│ └── workers/
├── .gitignore
├── install_all.bat
├── install_all.sh
├── LICENSE
├── package.json
└── README.md
Contributions are welcome! Please feel free to submit a pull request.
This project is licensed under the MIT License. See the LICENSE file for details.