{"id":22878048,"url":"https://github.com/dizzydroid/asu_seniorproject_dsa","last_synced_at":"2025-04-14T19:33:26.147Z","repository":{"id":267106448,"uuid":"893383735","full_name":"dizzydroid/ASU_SeniorProject_DSA","owner":"dizzydroid","description":"NodeScope: A Python-based XML editor and graph visualizer for efficient file management and analysis.","archived":false,"fork":false,"pushed_at":"2025-01-07T12:33:54.000Z","size":12262,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-03-28T07:51:15.195Z","etag":null,"topics":["compression","data-structure-analysis","decompression","dsa","graph-visualization","graphs","gui-application","json","network-analysis","python-app","xml","xml-parsing","xml-processing"],"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/dizzydroid.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,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-11-24T09:54:30.000Z","updated_at":"2025-01-07T12:33:58.000Z","dependencies_parsed_at":null,"dependency_job_id":"a3f26a3b-7dc2-433e-b807-a26970ce0973","html_url":"https://github.com/dizzydroid/ASU_SeniorProject_DSA","commit_stats":null,"previous_names":["dizzydroid/asu_seniorproject_dsa"],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dizzydroid%2FASU_SeniorProject_DSA","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dizzydroid%2FASU_SeniorProject_DSA/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dizzydroid%2FASU_SeniorProject_DSA/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dizzydroid%2FASU_SeniorProject_DSA/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/dizzydroid","download_url":"https://codeload.github.com/dizzydroid/ASU_SeniorProject_DSA/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248946266,"owners_count":21187477,"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":["compression","data-structure-analysis","decompression","dsa","graph-visualization","graphs","gui-application","json","network-analysis","python-app","xml","xml-parsing","xml-processing"],"created_at":"2024-12-13T16:17:42.847Z","updated_at":"2025-04-14T19:33:26.113Z","avatar_url":"https://github.com/dizzydroid.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# **nodescope** | XML Editor and Visualizer\n\n\u003cdiv id=\"header\" align=\"center\"\u003e\n \u003cimg src=\"assets/nodescope_asu.png\"\u003e\n\u003c/div\u003e\n\n\n## **Table of Contents**\n- [**Introduction**](#introduction)\n- [**Features**](#features)\n- [**Setup**](#setup)\n   - [**Prerequisites**](#prerequisites)\n   - [**Installation**](#installation)\n- [**Usage**](#usage)\n   - [**Release Versions**](#release-versions)\n   - [**From App.py**](#from-apppy)\n   - [**Directly from Main**](#directly-from-main)\n   - [**Command Line Interface (CLI)**](#command-line-interface-cli)\n- [**Commands Overview**](#commands-overview)\n- [**Testing**](#testing)\n- [**Contributing**](#contributing)\n\n\n---\n\n## **Introduction**\nThe XML Editor and Visualizer is a project developed for the Data Structures and Algorithms (DSA) course. It provides tools for processing, analyzing, and visualizing XML files, either via a **Command Line Interface (CLI)** or a **Graphical User Interface (GUI)**. It is designed to work with XML data representing social networks, enabling features like validation, formatting, and conversion.\n\n---\n\n## **Features**\n- **XML Validation**: Detect and fix issues like mismatched or missing tags.\n- **Formatting**: Prettify XML with proper indentation for readability.\n- **XML to JSON Conversion**: Transform XML data into JSON for web applications.\n- **Minification**: Reduce XML file size by removing unnecessary spaces and newlines.\n- **Compression**: Compress XML files into a custom format to save space.\n- **Decompression**: Restore compressed XML files to their original format.\n- **Visualization**: Represent social networks as graphs.\n- **Network Analysis**: Identify influencers, mutual connections, and follow suggestions.\n- **Post Search**: Search posts by word or topic.\n\n---\n\n## **Setup**\n\n### **Prerequisites**\n- Python 3.8 or higher\n- Libraries listed in [`requirements.txt`](requirements.txt)\n\n### **Installation**\n1. Clone the repository:\n   ```bash\n   git clone https://github.com/dizzydroid/ASU_SeniorProject_DSA/\n   ```\n2. Navigate to the project folder:\n   ```bash\n   cd ASU_SeniorProject_DSA\n   ```\n3. Install dependencies:\n   ```bash\n   pip install -r requirements.txt\n   ```\n\n---\n\n## **Usage**\n\n### **Release Versions**\nYou can download the executable from the [**latest release**](https://github.com/dizzydroid/ASU_SeniorProject_DSA/releases) to run the application without needing Python installed.\n\n\u003e [!NOTE]\n\u003e - The executable is available only for Windows OS, for other platforms you can run using Python by following the instructions below.\n\u003e \n\u003e - The executable has a few [**known issues**](https://github.com/dizzydroid/ASU_SeniorProject_DSA/releases#:~:text=files%20and%20graphs.-,Known%20Issues,-The%20application%20may), please be patient on the first run.\n\n### **From App.py**\nThis is the main script that launches the application, you can run it directly from root, on any platform:\n```bash\npython app.py\n```\n\n### **Directly from Main**\nThe main script allows you to choose either interface, you can run it directly from root:\n```bash\npython main.py\n```\n\u003e Displays a help message with available options.\n\u003e Choose either `--cli` or `--gui` to launch the respective interface.\n\n```bash\npython main.py --gui\n```\n\u003e Launches the GUI for visual interaction with XML files.\n\n```bash\npython main.py --cli\n```\n\u003e Launches the CLI for quick operations on XML files, in a shell-like environment. \n\u003e Simply type the [command](#commands-overview) followed by the required arguments.\n\u003e For example:\n\u003e ```bash\n\u003e \u003e\u003e verify -i input.xml -f -o fixed.xml\n\u003e ```\n\u003e To exit the CLI, type `exit` or `quit`.\n\n### **Command Line Interface (CLI)**\nPerform quick and efficient operations on XML files via the CLI using the `.bat` script provided, `xml_editor`:\n```bash\n./xml_editor [command] -i [input_file] -o [output_file]\n```\n\u003e [!TIP]\n\u003e Replace `[command]` with one of the available commands listed [below](#commands-overview).\n\n---\n\n## **Commands Overview**\nThe following is a comprehensive list of commands available in the XML Editor and example usage for each:\n\n| Command        | Description                                       | Example Command                                              |\n|----------------|---------------------------------------------------|--------------------------------------------------------------|\n| `verify`       | Validate an XML file and optionally fix it.       | `./xml_editor verify -i input.xml -f -o fixed.xml`  |\n| `format`       | Prettify an XML file for readability.             | `./xml_editor format -i input.xml -o formatted.xml` |\n| `json`         | Convert XML to JSON format.                       | `./xml_editor json -i input.xml -o output.json`     |\n| `mini`         | Minify XML by removing unnecessary spaces.        | `./xml_editor mini -i input.xml -o minified.xml`    |\n| `minify`       | Minify XML by removing unnecessary spaces.        | `./xml_editor minify -i input.xml -o minified.xml`  |\n| `compress`     | Compress an XML file into a custom format.        | `./xml_editor compress -i input.xml -o compressed.xml` |\n| `decompress`   | Restore compressed XML to its original form.      | `./xml_editor decompress -i compressed.xml -o output.xml` |\n| `cascade`      | Perform a sequence of operations on an XML file.  | `./xml_editor cascade -i input.xml -o final.xml -ops verify format minify json` |\n| `draw`         | Draw XML data as a graph.                         | `./xml_editor draw -i input.xml -o graph.png`       |\n| `most_active`  | Find the most active user in the XML data.        | `./xml_editor most_active -i input.xml`             |\n| `most_influencer` | Find the most influential user in the XML data.| `./xml_editor most_influencer -i input.xml`         |\n| `mutual`       | Find mutual users for given user IDs.              | `./xml_editor mutual -i input.xml -ids 1,2,3`       |\n| `suggest`      | Suggest users for a given user ID.                | `./xml_editor suggest -i input.xml -id 1`           |\n| `search`       | Search posts by word or topic.                    | `./xml_editor search -i input.xml -w word -t topic` |\n\n\n---\n\n## **Testing**\nRun tests to ensure functionality and correctness:\n```bash\npytest tests/\n```\nTests are located in the `tests/` directory and cover all major functionalities.\n\n---\n\n## **Contributing**\nWe welcome contributions to improve this tool! Here's how to get started:\n1. Fork the repository and create a branch for your changes.\n2. Follow consistent coding practices and provide meaningful commit messages.\n3. Submit a pull request after running all tests.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdizzydroid%2Fasu_seniorproject_dsa","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdizzydroid%2Fasu_seniorproject_dsa","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdizzydroid%2Fasu_seniorproject_dsa/lists"}