Skip to content

eidHossam/XML-Files-Parser

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

96 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

[CSE331] Data Structures And Algorithms project

Main idea

This project is a GUI based program used to parse and visualize an XML file representing users in a social network , Each user has id (unique), name, list of posts, list of followers, And each post has text and a list of topics.

project description

  • In this project we will work on some processes on the xml file like :

    1- Reading the xml file by locating it using the GUI or by giving the address of the file and showing the content of it to the user.

    2- Checking the consistency of the xml file.

    3- Detecting and visually showing the errors in the consistency if there is any.

    4- The program is also be able to solve the errors.

    5- Formatting (Prettifying) the XML: the XML file should be well formatted by keeping the indentation for each level.

    6- Converting XML to JSON: JSON (Javascript Object Notation) is another format that is used to represent data as It’s helpful to convert the XML into JSON, especially when using javascript as there’s tons of libraries and tools that use json notation.

    7- Minifying the XML file: Since spaces and newlines (\n) are actually characters that can increase the size of an XML document. This feature should aim at decreasing the size of an XML file by deleting the whitespaces and indentations.

    8- Compressing the data in the XML file: Decreasing the size of the xml file by compressing it using huffman encoding algorithm.

    9- Decompressing the compressed data to return to its original format.

    10- The user can edit the xml file from within the program.

    11- The ability to undo, redo the changes while editing the xml file.

  • In our system the XML file will represent users in a social network Each user has id (unique), name, list of posts, list of followers. Each post has text and list of topics,so we will :

    1- represent the users data using the graph data structure: the XML file will represent the users data in a social network (their posts, followers, ...etc). Then we will build a graph relation between the user.

    2- Apply network analysis on the constructed graph: We can extract some important data:

    • who is the most influencer user (has the most followers)

    • who is the most active user (connected to lots of users)

    • the mutual followers between 2 users

    • for each user, suggest a list of users to follow (the followers of his followers)

    3- do Post search: given a specific word or topic, get the posts where this word or topic was mentioned.

  • finally we will build qt application to interface with our xml application and to :

    1- allow the user to choose the XML file that will be used or enter the xml manually in a text area

    2- allow viewing the input XML and the output of each operation as much as possible

    3- allow the user to save the results of the operations to a new file.

snapshots

Main Window

Main_window

Reading file

Reading_File

Minified file

Minified

Network analysis

Net_analysis

Post search

Post_Search

setup

To run this project, you need to download the release zip file.

live demo

To see live demo for project, follow this link : https://drive.google.com/drive/u/0/folders/1i6gzBq_Q2_n025r20I_GljR-Dq1qnJab

Note

Each member contribution can be found in his own branch.