Skip to content

Project Iris is a mobile-first, web-based application built with React and TensorFlow.js, providing real-time on-device object detection and depth estimation. It includes user monitoring, an admin dashboard, and customizable settings.

License

Notifications You must be signed in to change notification settings

DhanushSaiCoder/Project-Iris

Repository files navigation

Project Iris Logo

Project Iris

A web-based smart assistant for the visually impaired, providing real-time environmental awareness through object and depth detection.

React Badge Node.js Badge MongoDB Badge TensorFlow Badge
Last Commit Badge Repo Size Badge License Badge

Features

  • 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.

Tech Stack

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

Getting Started

Prerequisites

  • Node.js and npm installed
  • MongoDB instance (local or cloud)

Installation

Option 1: Manual Installation

  1. Clone the repository:

    git clone https://github.com/DhanushSaiCoder/Project-Iris.git
    cd Project-Iris
  2. Install backend dependencies:

    cd backend
    npm install
  3. Install frontend dependencies:

    cd ../frontend
    npm install

Option 2: Using Installation Scripts

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

Configuration

  1. Create a .env.development file in the backend directory and add the following environment variables:

    MONGODB_URL=your_mongodb_connection_string
    PORT=5555
    JWT_SECRET=your_jwt_secret
    
  2. The frontend is configured to proxy requests to the backend, so no separate .env file is required for the frontend in development.

Running the Application

  1. Start the backend server:

    cd backend
    npm run dev
  2. Start the frontend development server:

    cd ../frontend
    npm start

The application will be available at http://localhost:3000.

Running for Mobile/Network Access

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.

  1. Build the frontend:

    cd frontend
    npm run build
  2. Run the dev:mobile script 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 Structure

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

Contributing

Contributions are welcome! Please feel free to submit a pull request.

License

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

About

Project Iris is a mobile-first, web-based application built with React and TensorFlow.js, providing real-time on-device object detection and depth estimation. It includes user monitoring, an admin dashboard, and customizable settings.

Topics

Resources

License

Stars

Watchers

Forks

Contributors 3

  •  
  •  
  •  

Languages