{"id":16170838,"url":"https://github.com/mostafa-kheibary/tehran-metro-api","last_synced_at":"2025-08-22T21:32:01.241Z","repository":{"id":181248199,"uuid":"666476462","full_name":"mostafa-kheibary/tehran-metro-api","owner":"mostafa-kheibary","description":"Tehran metro stations api","archived":false,"fork":false,"pushed_at":"2024-11-30T22:01:11.000Z","size":23,"stargazers_count":8,"open_issues_count":0,"forks_count":1,"subscribers_count":1,"default_branch":"main","last_synced_at":"2024-11-30T23:19:43.398Z","etag":null,"topics":["fastapi","graph","neo4j","shortest-path-algorithm"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/mostafa-kheibary.png","metadata":{"files":{"readme":"readme.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null}},"created_at":"2023-07-14T16:04:10.000Z","updated_at":"2024-11-30T22:01:15.000Z","dependencies_parsed_at":"2023-07-14T17:05:25.680Z","dependency_job_id":null,"html_url":"https://github.com/mostafa-kheibary/tehran-metro-api","commit_stats":null,"previous_names":["mostafa-kheibary/tehran-metro-api"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mostafa-kheibary%2Ftehran-metro-api","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mostafa-kheibary%2Ftehran-metro-api/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mostafa-kheibary%2Ftehran-metro-api/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mostafa-kheibary%2Ftehran-metro-api/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/mostafa-kheibary","download_url":"https://codeload.github.com/mostafa-kheibary/tehran-metro-api/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":230639801,"owners_count":18257702,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["fastapi","graph","neo4j","shortest-path-algorithm"],"created_at":"2024-10-10T03:19:44.841Z","updated_at":"2024-12-20T19:52:01.284Z","avatar_url":"https://github.com/mostafa-kheibary.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Metro Navigation App: Setup and Installation Guide\n\n##### This project use the [metro-graph-data](https://github.com/mostafa-kheibary/tehran-metro-graph) repository for the metro stations data\n\n##\n\n##\n\n##\n\nMetro-App is a Python-based project that uses the FastAPI framework.and it used for :\n\n- Find the shortest time to trvel from on station to another\n- FullText search across the tehran metro stations\n- and other metro related api's\n\nThe guide will provide instructions on how to setup and run the Metro-App project. Please follow each step closely to ensure the successful setup of the project.\n\n## Prerequisites\n\nYou can run this project as Docker container with\n\n```bash\ndocker-compose up --build\n```\n\nor just run it localy:\nBefore getting started, make sure you have the following software installed on your system:\n\n- Python 3.7 or later\n- Neo4j Database\n\n### Step 1: Install Neo4j Database\n\nThe Metro-App project uses the Neo4j graph database. If you do not have it installed, you can download and install it from [here](https://neo4j.com/download/).\n\nAfter installation, make sure the Neo4j service is running.\n\n### Step 2: Setting Up a Virtual Environment\n\nTo keep your project's dependencies isolated from your other Python projects, it is good practice to use a virtual environment.\n\nTo create a virtual environment for this project, navigate to the project directory in your terminal and run the following command:\n\n```bash\npython -m venv env\n```\n\n### Step 3: Setting Up Environment Variables\n\nNext, create a `.env` file in the root directory of the project. This file will hold all the necessary environment variables. Add the following content to the `.env` file:\n\n```\nNEO4J_URI=\"neo4j://localhost:7687\"\nNEO4J_USERNAME=\"neo4j\"\nNEO4J_PASSWORD=\"neo4j\"\n```\n\nPlease replace `\"neo4j\"` in `NEO4J_USERNAME` and `NEO4J_PASSWORD` with your actual Neo4j username and password.\n\n### Step 4: Install Required Python Packages\n\nFirst, activate the virtual environment you created:\n\nFor Linux or macOS:\n\n```bash\nsource env/bin/activate\n```\n\nFor Windows:\n\n```bash\n.\\env\\Scripts\\activate\n```\n\nThen install the necessary Python packages for the project by running:\n\n```bash\npip install -r requirements.txt\n```\n\n### Step 5: Migrate the Database\n\nAfter setting up the database and environment, you need to migrate your data. Run the following command:\n\n```bash\npython3 migirate.py\n```\n\n### Step 6: Run the Project\n\nFinally, you can run the project using the following command:\n\n```bash\npython3 main.py\n```\n\nAfter this step, your application should be running, and you can access it through your web browser.\n\nPlease feel free to reach out if you encounter any problems during the setup process. Happy coding!\n\n### Step 7: Navigate to\n\n```bash\nhttp://localhost:8000/docs\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmostafa-kheibary%2Ftehran-metro-api","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmostafa-kheibary%2Ftehran-metro-api","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmostafa-kheibary%2Ftehran-metro-api/lists"}