Professional Documents
Culture Documents
Report Oop It3100e
Report Oop It3100e
Object-oriented Programming
Ha Noi, 06/2023
School of Information and Communication Technology
Object-oriented Programming - IT3100E
Semester 2022.2
Abstract
The Vietnam History App is a digital platform dedicated to immersing users in
Vietnam’s historical legacy. It leverages an automated data collection process to draw
information from three prominent websites, namely Người Kể Sử (https://nguoikesu.
com/), the Wikimedia Foundation (utilizing Wikidata and Wikipedia), and DBpedia.
Meticulously crawling data, the app captures a diverse range of historical entities,
including 25 dynasties, over 5725 historical figures, 107 cultural festivals, 452 significant
historical events, and 2653 landmarks and relics. This comprehensive dataset allows users
to delve deep into Vietnam’s rich history and culture.
With a user-friendly interface, the app offers seamless navigation through its exten-
sive historical database, empowering users to effortlessly locate specific figures, events, or
landmarks of interest. By providing detailed insights and information, the app fosters
historical awareness and promotes the preservation of Vietnam’s cultural heritage.
This report presents the architectural design, data collection methodology, and eval-
uation of the Vietnam History App, highlighting its significant role in historical explo-
ration and its impact on deepening understanding of Vietnam’s cultural heritage.
School of Information and Communication Technology
Object-oriented Programming - IT3100E
Semester 2022.2
Contents
1 Introduction 3
2 Project overview 3
2.1 User Case Diagram . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
2.2 Project Flow Chart . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
3 Architectural Design 7
3.1 UML Design . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
3.2 Design Explanation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
3.3 Technologies and Algorithms . . . . . . . . . . . . . . . . . . . . . . . . . . 23
6 Conclusion 29
References 30
School of Information and Communication Technology
Object-oriented Programming - IT3100E
Semester 2022.2
1. Introduction
In the digital age, preserving and showcasing Vietnam’s rich historical legacy presents
unique challenges and opportunities. Accessing and comprehending the vast cultural her-
itage requires innovative solutions that leverage the power of technology. In response to
these challenges, the Vietnam History App was developed. This digital platform designed
to provide users with an immersive exploration of Vietnam’s history, offering a thorough
and engaging experience that delves into the depths of the country’s past.
Motivated by the desire to raise historical awareness and safeguard Vietnam’s cul-
tural heritage, this project has three primary objectives. Firstly, it aims to create a user-
friendly platform that seamlessly navigates users through the extensive historical data
collected. Secondly, it strives to provide detailed insights and information about histori-
cal figures, festivals, landmarks, and events to foster a deeper understanding of Vietnam’s
history and culture. Lastly, it seeks to contribute to the preservation of Vietnam’s cultural
heritage by making historical knowledge more accessible and engaging.
This report serves as a comprehensive documentation of the Vietnam History App
project. It begins with an overview of the project flow and process, describing the key steps
and processes followed in its development. The architectural design section includes UML
diagrams, such as the package dependency diagram and class diagram, which illustrate
the system’s structure and organization. The design explanation delves into the purpose
and functionality of different packages/modules, explains the conceptual classes and their
relationships, and discusses the applied object-oriented programming techniques.
Additionally, the report highlights the technologies and algorithms employed, pro-
viding a list of frameworks used and explanations of notable algorithms or techniques
implemented. The data statistics and analysis results section presents an overview of
the collected data, including the number of historical figures, festivals, landmarks, data
attributes for each entity type, and the number of links between entities. Analysis and
insights derived from the data are also discussed.
To assist users in navigating the app effectively, a brief user guide with important
program demo images is provided. The conclusion summarizes the project outcomes and
includes a reflection on lessons learned and future improvements, addressing limitations
and proposing areas for further development.
Finally, the report includes an explanation of task allocation among team members,
detailing how tasks were divided, and quantified contribution percentages for each team
member. The references section lists the sources and materials used in the project.
2. Project overview
In this section, we provide an overview of the Vietnam History App project, focusing
on its key features, user capabilities, and project flow. Understanding the app’s objectives,
scope, and functionalities is crucial for gaining valuable insights into its development and
value.
3
School of Information and Communication Technology
Object-oriented Programming - IT3100E
Semester 2022.2
The Vietnam History App offers several key user capabilities, which are depicted in
the use case diagram. Users have the ability to view the app’s information, including a
brief introduction about the app and details about the team members who developed it.
4
School of Information and Communication Technology
Object-oriented Programming - IT3100E
Semester 2022.2
This feature provides users with an understanding of the app’s purpose and the people
behind its creation.
Another important functionality of the app is the ability to browse different types of
historical entities. Users can choose from categories such as dynasties, figures, landmarks,
events, and festivals. Upon selecting a specific category, the app presents a list of entities
that fall under that category. Each entity is displayed with its unique identifier, name,
and brief information, allowing users to explore the available entities within their area of
interest.
Furthermore, users have the option to view detailed information about a specific
entity. By selecting an entity from the list, users can access comprehensive details about its
historical background, significance, and other relevant information. This feature enables
users to gain in-depth knowledge about the chosen entity and its role in Vietnam’s history.
To facilitate easy access to specific entities, the app provides a search functionality
for each entity type. Users can enter keywords or names related to their specific interest
and search within the selected entity type. The app then displays the search results,
allowing users to access detailed information about their desired entities.
The Vietnam History App also offers a feature that presents related entities when
viewing the detailed information of a specific entity. Users can explore the connections
and relationships between different historical entities by clicking on the related entities.
This feature allows users to navigate backward or forward and delve deeper into the
interconnected nature of Vietnam’s historical legacy.
5
School of Information and Communication Technology
Object-oriented Programming - IT3100E
Semester 2022.2
nam. After that, we transformed the Wikipedia data into a human-readable format and
categorized the entities into five distinct categories: dynasty, figure, festival, landmark,
and historical events.
Project Flow Chart
Wikipedia
GUI
Parallel to the Wikipedia data collection, we obtained raw data from DBpedia,
which also provides structured data. While the DBpedia JSON files contained simpler
data, they also contained some inaccuracies. To ensure accuracy and relevance, we filtered
the DBpedia data by focusing on entities with links to Wikipedia and selecting properties
that shared the same data type. This allowed us to synchronize and merge the DBpedia
data with the previously filtered Wikipedia data, ensuring consistency and relevance to
the Vietnam History App. After this step, we transformed the DBPedia data to match
the Wiki format, preparing it for the merging stage.
Additionally, we extracted information from Người Kể Sử, which provided data in
HTML format. By extracting specific tags such as <th> and <td>, we obtained the
raw data as a hashmap, with <th> representing the key and <td> as the corresponding
value. This data was then transformed and synchronized with the Wiki format, aligning
it with the rest of the data sources.
The next step in the project involved merging the filtered data from the three sources.
6
School of Information and Communication Technology
Object-oriented Programming - IT3100E
Semester 2022.2
The merging process combined the relevant data into a unified dataset, eliminating redun-
dancies and ensuring data consistency. After the initial merge, we performed additional
filtering to extract and refine the specific data related to Vietnam. This involved remov-
ing irrelevant entities and retaining only the information that aligned with the project’s
scope and objectives.
The next phase of the project involved merging the filtered data from the three
sources. This merging process combined the relevant data into a unified dataset, elimi-
nating redundancies and ensuring data consistency. After the initial merge, we performed
additional filtering to extract and refine the specific data related to Vietnam, remov-
ing any irrelevant entities and retaining only the information aligned with the project’s
objectives and scope.
With the structured data in place, the Vietnam History App’s graphical user in-
terface (GUI) was designed and implemented to provide a seamless and intuitive user
experience. The interface incorporated features such as a home screen with app informa-
tion, entity browsing options, search functionality, and detailed entity views. The design
process considered usability, aesthetics, and functionality to create an engaging platform
for users. Rigorous testing and quality assurance measures were employed to ensure the
app’s performance, functionality, and reliability, resulting in a stable and user-friendly
app.
Finally, the completed Vietnam History App was deployed and made available to
users, allowing them to explore and engage with Vietnam’s historical legacy at their
convenience. Ongoing monitoring and maintenance efforts ensured the app remained
up-to-date and provided an optimal user experience.
3. Architectural Design
After gaining an overview of the project in the previous sections, the inner workings
of the application are explored. This section delves into the implementation details and
architectural design of the Vietnam History App, providing valuable insights into its
structure and development strategies. It encompasses UML diagrams, explanations of
design choices, highlights of applied object-oriented programming techniques, and a list
of technologies and frameworks used in the project.
7
School of Information and Communication Technology
Object-oriented Programming - IT3100E
Semester 2022.2
8
Figure 2: Crawler Class Diagram Part 1
School of Information and Communication Technology
Object-oriented Programming - IT3100E
Semester 2022.2
9
School of Information and Communication Technology
Object-oriented Programming - IT3100E
Semester 2022.2
10
School of Information and Communication Technology
Object-oriented Programming - IT3100E
Semester 2022.2
11
School of Information and Communication Technology
Object-oriented Programming - IT3100E
Semester 2022.2
12
School of Information and Communication Technology
Object-oriented Programming - IT3100E
Semester 2022.2
13
School of Information and Communication Technology
Object-oriented Programming - IT3100E
Semester 2022.2
14
School of Information and Communication Technology
Object-oriented Programming - IT3100E
Semester 2022.2
15
School of Information and Communication Technology
Object-oriented Programming - IT3100E
Semester 2022.2
16
School of Information and Communication Technology
Object-oriented Programming - IT3100E
Semester 2022.2
17
School of Information and Communication Technology
Object-oriented Programming - IT3100E
Semester 2022.2
the corresponding entity categories. The controller package manages the screen
controllers using JavaFX FXML.
By organizing the functionality into separate packages, the Vietnam History App
achieves a modular and structured design. Each package has a clear purpose and plays a
vital role in the overall functionality and structure of the application.
18
School of Information and Communication Technology
Object-oriented Programming - IT3100E
Semester 2022.2
19
School of Information and Communication Technology
Object-oriented Programming - IT3100E
Semester 2022.2
20
School of Information and Communication Technology
Object-oriented Programming - IT3100E
Semester 2022.2
• App: The main class responsible for starting the GUI application and
managing the scenes. It initializes the GUI, handles scene transitions, and
manages the overall application flow.
(b) model Package: Contains model classes representing different types of his-
torical entities.
• HistoricalEntity: The base class representing a historical entity with
common properties and methods.
• Dynasty: Represents a historical dynasty.
• Festival: Represents a historical festival.
• Figure: Represents a historical figure.
• HistoricalEvent: Represents a historical event.
• Landmark: Represents a historical landmark or place.
(c) loader Package: Contains data loader classes for loading historical entity
data from files.
• DataLoader<T>: A base abstract class for loading data from JSON
files. It provides a template method for loading data and returns an Ob-
servableList of objects. It also defines an abstract method to get the class
type of the objects to load.
• DynastyLoader: A class that extends DataLoader and is responsible for
loading dynasty data from JSON files. It specifies the folder path and the
class type of Dynasty objects.
• EventLoader: A class that extends DataLoader and is responsible for
loading historical event data from JSON files. It specifies the folder path
and the class type of HistoricalEvent objects.
• FestivalLoader: A class that extends DataLoader and is responsible for
loading festival data from JSON files. It specifies the folder path and the
class type of Festival objects.
• FigureLoader: A class that extends DataLoader and is responsible for
loading historical figure data from JSON files. It specifies the folder path
and the class type of Figure objects.
• LandmarkLoader: A class that extends DataLoader and is responsible
for loading place data from JSON files. It specifies the folder path and the
class type of Landmark objects.
(d) controller Package: Contains controller classes for different scenes.
• DetailSceneController: This controller handles the detail scene, where
the information of a specific historical entity is displayed. It initializes the
scene, handles the "Go Back" button press, and sets the data to display on
21
School of Information and Communication Technology
Object-oriented Programming - IT3100E
Semester 2022.2
22
School of Information and Communication Technology
Object-oriented Programming - IT3100E
Semester 2022.2
23
School of Information and Communication Technology
Object-oriented Programming - IT3100E
Semester 2022.2
Additionally, there are a total of 88815 entity linkages within the app.
24
School of Information and Communication Technology
Object-oriented Programming - IT3100E
Semester 2022.2
The analysis of the Vietnam History App’s data provides valuable insights into
Vietnam’s historical legacy. The dataset encompasses figures, dynasties, historical events,
festivals, and landmarks and relics, sourced from the Wikimedia Foundation (Wikipedia
and Wikidata), DBpedia, and Người Kể Sử. These diverse sources contribute to the app’s
rich content and enhance the user experience.
The Wikimedia Foundation is a primary source, offering landmarks and relics,
events, figures, cultural festivals, and dynasties. DBpedia and Người Kể Sử also provide
valuable information, enriching the app’s content. Through the app’s linking capabilities,
users can explore the interconnectedness between figures, events, festivals, landmarks, and
dynasties, gaining a comprehensive understanding of Vietnam’s historical narrative.
The collaborative efforts of the Wikimedia Foundation, DBpedia, and Người Kể Sử
play a crucial role in providing a diverse range of data, establishing the foundation for the
Vietnam History App. By leveraging these data sources, the app offers users an immersive
journey into Vietnam’s historical legacy.
25
School of Information and Communication Technology
Object-oriented Programming - IT3100E
Semester 2022.2
1. Home Screen: The home screen serves as the starting point for users’ historical
exploration journey.
2. Entity Browsing: The app allows users to browse through different categories of
entities, including dynasties, figures, landmarks, events, and festivals. By selecting
a specific category, users can view a list of entities within that category.
3. Search Functionality: The Vietnam History App provides a search bar at the
top, allowing users to search for specific entities within each category. Simply enter
a search query to retrieve the matching results.
4. Detailed Entity Views: When users select an entity from the list or search results,
the app displays a detailed view of the entity. This view provides comprehensive
information about the entity, including its name, description, related entities, and
other relevant details.
5. Navigation between Related Entities: Within the detailed entity view, users
can navigate to related entities by clicking on the links provided. This allows users
to explore the connections and relationships between different historical elements.
6. About Screen: The About screen offers insights into the app’s creation by provid-
ing an introduction to the Vietnam History App and information about the team
members involved in its development.
26
School of Information and Communication Technology
Object-oriented Programming - IT3100E
Semester 2022.2
27
School of Information and Communication Technology
Object-oriented Programming - IT3100E
Semester 2022.2
28
School of Information and Communication Technology
Object-oriented Programming - IT3100E
Semester 2022.2
6. Conclusion
In conclusion, the project has successfully developed a comprehensive system for
retrieving and presenting historical data related to Vietnam. By leveraging object-oriented
programming techniques, we have created an application that offers users a user-friendly
interface to explore the country’s rich history.
Throughout the project, we utilized various technologies and frameworks to enhance
the functionality and efficiency of the system. Maven, SonarQube, JavaFX, and JavaFX
FXML Scene Builder were employed to build the graphical user interface (GUI) and en-
sure a smooth user experience. We employed UML diagrams to design and visualize the
project’s architecture. Git and GitHub facilitated effective version control and collabora-
tion among team members.
To handle data retrieval, we employed different JSON libraries such as Gson for the
Người Kể Sử crawling process, and Jackson for the GUI. This enabled us to parse and
process the data efficiently, ensuring accurate and consistent representation of historical
entities.
While the project achieved its primary goals, it is important to acknowledge certain
limitations. One of the limitations stems from the scarcity of official websites dedicated
to Vietnam’s history. This constrained our access to online sources for data crawling. To
address this in future projects, consideration could be given to alternative sources, such
as historical books or academic publications, to augment the available data.
Another challenge we faced was maintaining consistency throughout the project. As
novice developers, we encountered difficulties in ensuring a unified approach, resulting in
29
School of Information and Communication Technology
Object-oriented Programming - IT3100E
Semester 2022.2
the use of multiple libraries for handling different JSON formats. This could be improved
in future projects by adopting a more standardized and streamlined approach.
In conclusion, the project demonstrates the successful implementation of object-
oriented programming techniques and the effective utilization of various technologies and
frameworks. The GUI provides users with a seamless and intuitive platform to explore
Vietnam’s historical information. While limitations existed, such as the scarcity of online
resources and inconsistencies in the project, they serve as valuable lessons for future
endeavors. The project serves as a foundation for future enhancements, including the
exploration of additional data sources and improved collaboration among team members.
References
[1] DBpedia, 2023. https://www.dbpedia.org/ (Retrieved on July 10, 2023).
[2] Người Kể Sử, 2023. https://nguoikesu.com/ (Retrieved on July 10, 2023).
[3] Wikidata, 2023. https://www.wikidata.org/ (Retrieved on July 10, 2023).
[4] Wikipedia, 2023. https://www.wikipedia.org/ (Retrieved on July 10, 2023).
30