Skip to content
@Signalyze

Signalyze

Signalyze is a traffic sign recognition system designed specifically for Indian roads. Made with Next.js, FastAPI and YOLOv8 (82% mAP@90%).

Signalyze

Signalyze is a traffic sign recognition system designed specifically for Indian roads. It uses computer vision and deep learning to detect and classify traffic signals into 37 predefined classes in real time. Once a traffic sign is recognized, the system provides an audio response, assisting drivers in navigating the busy roadways of India.

In addition to its core detection functionality, Signalyze includes an optional authentication system using NextAuth.js (Auth.js), Prisma ORM, and PostgreSQL. This authentication layer enables users to store each of their detections. The detections are then presented on a dashboard, where users can view overall statistics, detailed breakdowns (such as total detections, unique signs, and the most frequently detected sign), and interactive charts showing monthly trends by traffic sign type.

The system has been trained on the labelled Indian Road Traffic Sign Detection dataset and uses a YOLO v8 (small) model, achieving a mAP (mean Average Precision) of 82% (ranging from 50% to 95% across various classes).

Table of Contents

Tech Stack

Getting Started

Prerequisites

Frontend Setup

  1. Clone the repository:

    git clone https://github.com/Signalyze/www.git
    cd www
  2. Install dependencies:

    npm install
  3. Prisma Setup:

    • Ensure you have your database credentials set in your environment variables (see Environment Setup below).
    • Run Prisma migrations to set up your database schema:
      npx prisma migrate dev --name init
    • (Optional) Open Prisma Studio to inspect your data:
      npx prisma studio
  4. NextAuth Setup:

    • Make sure you have the required environment variables set (see Environment Setup below).
  5. Run the development server:

    npm run dev

    Open localhost:3000 in your browser.

Backend Setup

  1. Clone the repository:

    git clone https://github.com/Signalyze/backend.git
    cd backend
  2. Create a virtual environment and activate it:

    python -m venv venv
    source venv/bin/activate  # On Windows use `venv\Scripts\activate`
  3. Install dependencies and run the FastAPI server:

    pip install -r requirements.txt
    uvicorn index:app --reload

    The API will be available at localhost:8000. Make sure this URL matches the NEXT_PUBLIC_API_URL in your environment settings.

Environment Setup

Create a .env file in the root of the frontend project as shown below:

# Detection API URL
NEXT_PUBLIC_API_URL=http://localhost:8000

# Connect to Database via connection pooling
DATABASE_URL=postgresql://username:password@localhost:5432/signalyze_db?pgbouncer=true
# Direct connection to the database. Used for migrations.
DIRECT_URL=postgresql://username:password@localhost:5432/signalyze_db

# NextAuth configuration
NEXTAUTH_URL=http://localhost:3000
NEXTAUTH_SECRET=your-generated-secret

# Resend confirmation
RESEND_API_KEY=your-resend-api-key
EMAIL_FROM=[email protected]

Steps to Generate / Find Keys:

  • NEXTAUTH_SECRET:
    Generate a secret using:

    openssl rand -base64 32
    # or
    npx auth secret
  • DATABASE_URL & DIRECT_URL:

    • For local PostgreSQL, use the connection string format:
      postgresql://username:password@localhost:5432/your_database
    • For Supabase, check your project’s settings on the Supabase dashboard, click on connect button and copy the connection string.
  • RESEND_API_KEY & EMAIL_FROM:

    • Sign up at Resend and get an API key with sending access.
    • Verify your email domain on Resend and use that address for EMAIL_FROM.

Contributing

We welcome contributions from the community! If you would like to contribute to Signalyze, please follow these steps:

  1. Fork the repository.
  2. Create a new branch for your feature or bug fix.
  3. Commit your changes with clear and descriptive messages.
  4. Submit a pull request detailing your changes.

License

This project is licensed under the MIT License.

Contact

For any questions, feedback, or support, please create an issue on the respective repository.

Pinned Loading

  1. www www Public

    The @Signalyze website. Built with Next.js, Auth.js, Prisma

    TypeScript 2

  2. backend backend Public

    @Signalyze backend (API) on FastAPI

    Python 1

  3. irtsd-small irtsd-small Public

    YOLOv8 (small) model trained on a custom-labeled Indian Road Traffic Sign Detection dataset for image detection and classification.

    Python 1

Repositories

Showing 7 of 7 repositories
  • www Public

    The @Signalyze website. Built with Next.js, Auth.js, Prisma

    Signalyze/www’s past year of commit activity
    TypeScript 0 2 0 0 Updated Apr 16, 2025
  • .github Public

    Readme

    Signalyze/.github’s past year of commit activity
    0 MIT 0 0 0 Updated Apr 14, 2025
  • irtsd-small Public

    YOLOv8 (small) model trained on a custom-labeled Indian Road Traffic Sign Detection dataset for image detection and classification.

    Signalyze/irtsd-small’s past year of commit activity
    Python 0 1 0 0 Updated Mar 14, 2025
  • backend Public

    @Signalyze backend (API) on FastAPI

    Signalyze/backend’s past year of commit activity
    Python 0 1 0 0 Updated Mar 10, 2025
  • irtsd-nano Public

    YOLOv8 (nano) model trained on a custom-labeled Indian Road Traffic Sign Detection dataset for image detection and classification.

    Signalyze/irtsd-nano’s past year of commit activity
    Python 0 0 0 0 Updated Feb 26, 2025
  • signalyze-yolo Public

    YOLO model for classifying traffic signs

    Signalyze/signalyze-yolo’s past year of commit activity
    Jupyter Notebook 1 0 0 0 Updated Jan 26, 2025
  • signalyze-keras Public

    CNN model for classifying traffic signs

    Signalyze/signalyze-keras’s past year of commit activity
    Python 0 0 0 0 Updated Dec 31, 2024

Top languages

Loading…

Most used topics

Loading…