مشروع هياكل بيانات وخوارزميات

Routify

تطبيق سطح مكتب بيحسب وبيعرض أقصر وأسرع الطرق، والطرق البديلة، والرحلات متعددة المحطات باستخدام بيانات طرق حقيقية.

  • Python
  • PyQt6
  • Dijkstra & A*
  • OpenStreetMap

نظرة على المشروع

Routify

01

المشكلة

تخطيط الطريق محتاج نمذجة بيانات الشوارع والبحث السريع داخل Graph ومقارنة بدائل وعرض النتيجة في واجهة سهلة.

02

الحل

Routify بيحوّل بيانات OpenStreetMap إلى Graph محلي ويستخدم هياكل بيانات مخصصة مع Dijkstra وA*. واجهة PyQt6 تعرض النتائج على خريطة تفاعلية وتدعم الطرق البديلة والرحلات متعددة المحطات.

03

مسؤوليتي

  • نفذت Graph وMin-Heap وHash Table وخوارزميات الفرز والبحث وAVL Tree.
  • بنيت Dijkstra وA* وBFS وDFS وربطتها بخدمات التوجيه.
  • طورت ترتيب المحطات ومقارنة الطرق البديلة.
  • أنشأت واجهة PyQt6 وربطت الخريطة التفاعلية.

04

أهم التحديات

  • تحويل ملفات OpenStreetMap إلى بيانات توجيه محلية فعالة.
  • ربط الخوارزميات بطرق حقيقية وأسماء أماكن.
  • دعم أقصر وأسرع وبديل ومتعدد المحطات.
  • إبقاء ملفات الخرائط الكبيرة خارج Git مع خطوات إعداد قابلة للتكرار.

05

طريقة التشغيل

  1. 01

    Download the project

    Use Python 3.11 or newer, then clone the repository or download the ZIP.

    git clone https://github.com/Ahmed-hesham2306/routify.git
    cd routify
  2. 02

    Create the environment

    Create a Python virtual environment and activate it in PowerShell.

    python -m venv .venv
    .venv\Scripts\Activate.ps1
  3. 03

    Install Routify

    Install the dependencies and the project package.

    python -m pip install --upgrade pip
    pip install -r requirements.txt
    pip install -e .
  4. 04

    Prepare map data

    Export a small area from OpenStreetMap, save it as data/export.osm, and process it.

    python scripts/process_osm.py data/export.osm
  5. 05

    Launch and test

    Start the graphical interface. You can also run the automated tests.

    python -m routify --gui
    pytest