Digital Archieve System
Digital Archieve System
INTRODUCTION
University libraries play a critical role in supporting research, teaching, and learning.
Traditionally, these libraries have been repositories of physical books and journals.
digitization of content have transformed the role of university libraries. Many now
seek to establish digital archives that can house academic materials, publications,
archives is driven by the need for flexibility, easy access, and the ability to store a
A digital archive provides a platform where users can search, retrieve, and preserve
Such archives are critical for online university libraries as they offer organized,
al., 2022). The idea of a digital archive within the university library system is not
just about digital preservation but also addresses the broader issue of information
accessibility in the digital age, which aligns with the mission of universities to
remote education, the importance of digital archives has grown. These archives
1
ensure that valuable educational materials are available to students and researchers
Universities around the world are transitioning to digital libraries to meet the
demand for 24/7 access to scholarly resources, as noted by Day (2020). Thus, a
library.
developing nations, struggle with creating efficient and sustainable digital archive
limited financial resources, and the difficulty of integrating new systems into
In most cases, university libraries still rely on outdated methods of data preservation
and storage, which are not suited to the growing demands of students and
researchers for immediate access to academic resources. This limitation affects the
overall academic productivity and undermines the goal of making research and
digital archives exist, they are not user-friendly or sufficiently integrated with
modern search and retrieval systems, making it difficult for users to locate necessary
2
This study aims to address these challenges by proposing a digital archive model
tailored to the specific needs of an online university library. It will consider aspects
feasibility, all within the context of academic institutions that are increasingly
This study is significant for several reasons. First, it addresses the growing need for
ensuring that academic materials are preserved and easily accessible. As universities
model will ensure that educational resources remain relevant and accessible (Kumar
Second, the proposed digital archive model will contribute to the body of knowledge
developing nations where the adoption of such systems is still in its early stages.
This research will offer insights into the challenges faced by university libraries in
creating digital archives and provide practical solutions for overcoming these
challenges. The findings can inform policy decisions and encourage investments in
Furthermore, the study will benefit students, researchers, and academic staff by
3
system that enhances research output and promotes easier access to scholarly
The aim of this study is to develop a comprehensive digital archive model for an
iii. To implement a user-friendly interface, that will interface with the database
resources such as books, journals, theses, and multimedia for students and
researchers.
4
Metadata: Data that describes other data, making it easier to locate and retrieve
This study is limited to developing a digital archive model specifically for an online
university library, which may not apply universally to other types of digital libraries.
Furthermore, due to resource constraints, the study does not involve large-scale
testing of the proposed model across multiple institutions. The research also
countries.
The scope of this study covers the analysis of current digital archive systems in
digital archive model designed specifically for an online university library, taking
and developing countries. The study will focus on aspects such as user experience,
5
CHAPTER TWO
LITERATURE REVIEW
information and documents for long-term use. Traditionally, archives were physical
technology, archive systems have shifted to digital formats. Digital archive systems
are crucial in today's information age because they enable institutions, including
universities, to store vast amounts of data in a secure and accessible way. These
such as research papers, theses, and other scholarly publications (Peterson, 2021).
they support educational and research activities by providing 24/7 access to critical
resources. The role of these systems extends beyond mere storage, as they include
features for information management, access control, and data retrieval. University
libraries that adopt digital archives offer more flexible and efficient access to
constraints (Martin & Kwong, 2020). Key components of an effective digital archive
6
2.2 OVERVIEW OF RELATED CONCEPTS
materials remain accessible and authentic in the long term (Hassan & Curry,
2022).
In a digital archive, metadata ensures that digital objects are findable and
iii. Access Control refers to the process of determining who can view, retrieve,
or edit the materials in the archive. University libraries need robust access
and operate across different platforms and systems. For a digital archive to
7
2.2.1 DEFINITION OF RELATED TERMS
iii. Metadata: Data that provides information about other data, enhancing the
iv. Access Control: A mechanism used to determine and regulate who can
preserving and managing digital content in various domains. This section reviews
key works related to the development of digital archive systems, focusing on similar
8
2.3.1 EXAMPLES OF APPLICATIONS SIMILAR TO THE CASE STUDY
(INFORMATION SYSTEM)
Several digital archive systems have been implemented in academic institutions and
systems, D-Space provides tools for managing digital collections. It has been
Space's flexibility and support for various file formats make it a leading
source system that supports the preservation of digital content. Its modular
and audio. It has been widely adopted by museums and libraries to preserve
and share their collections with the public (Larson & Smith, 2020).
9
d. Omeka: Omeka is an open-source web publishing platform used by many
academic institutions for creating digital archives and exhibits. Its user-
institutions seeking to organize and preserve academic materials. While each system
has unique features, they all share a common goal: to make digital content easily
accessible and searchable for users while ensuring its long-term preservation.
The field of digital archiving has seen various research efforts aimed at addressing
efforts include the exploration of new technologies, methodologies, and models that
settings. This section delves into the existing body of work, discussing the various
Cloud computing is an integral solution for institutions that need scalable, flexible,
10
investigated for their ability to provide on-demand storage and computing power for
university libraries and similar institutions. Research by Zhang and Lin (2021)
scalability, flexibility, and enhanced data security. These systems reduce the
systems allow for efficient disaster recovery strategies, ensuring that data remains
Other studies have focused on hybrid cloud models that combine private and public
cloud solutions, allowing institutions to balance security concerns with the need for
scalability. For example, in a study by Wei et al. (2020), hybrid cloud-based digital
proof ledger that records transactions and changes made to data. Patel and Joshi
11
maintain a verifiable history of digital content, making it impossible to alter
Research in this area also extends to the concept of smart contracts, which are self-
executing contracts stored on the blockchain. Smart contracts have the potential to
automate access control mechanisms and ensure that only authorized users can
provide enhanced security against data breaches, as there is no single point of failure
Artificial Intelligence (AI) and Machine Learning (ML) have been applied to digital
improve user interaction. According to Huang and Kim (2021), machine learning
algorithms can automatically categorize, tag, and index digital materials, making it
easier for users to locate relevant documents. By analyzing patterns in user behavior,
these algorithms can also improve the accuracy of search results by providing
12
search functionalities, improving the overall efficiency of resource discovery
ARCHIVES
The design of digital archive systems must prioritize user experience to ensure ease
of access and navigation. Lee and Park (2022) emphasize the importance of user-
institutions. Their research suggests that archives built with UCD principles are
more likely to be effective because they align with the specific needs and behaviors
User interface (UI) and user experience (UX) design principles have been
digital content. For instance, digital archives for visually impaired users may include
ensure usability. The adoption of responsive design practices also ensures that
to mobile phones.
OWL (Web Ontology Language), have been applied to digital archive systems to
13
understand the relationships between different data points, creating more meaningful
and context-aware search results. Khandelwal et al. (2020) discuss how these
accuracy and enable linked data integration. By linking archived materials to other
datasets, users can uncover connections between different fields of study or identify
In addition, Linked Open Data (LOD) initiatives have been applied to digital
Preserving digital content over the long term remains a major challenge for
practices such as regular data migration, format conversion, and the creation of
redundant copies of digital materials to ensure that they remain usable in the future.
Recent research has also explored the role of emulation techniques in preserving
14
software or multimedia files may use emulators to replicate the original operating
environment in which the files were created. This ensures that users can still access
the content even after the original software or hardware has become outdated (Jones
archive systems across different platforms. Dublin Core, METS (Metadata Encoding
and Transmission Standard), and MODS (Metadata Object Description Schema) are
among the most widely adopted metadata standards in digital libraries. Johnston and
Riley (2020) argue that the adoption of standardized metadata enhances the
more efficiently.
research. Studies by Gomez and Smith (2020) highlight the need for consistent
metadata practices across academic institutions to ensure that digital archives can
communicate and share data with other systems, including institutional repositories,
Digital rights management (DRM) systems are essential for regulating the use and
access to digital content by enforcing policies regarding who can view, download, or
15
modify the materials. The integration of DRM into digital archive systems is crucial
for safeguarding intellectual property while allowing authorized users to access the
where sensitive research materials may require controlled access (Hernandez &
Martinez, 2022).
digital archive systems, particularly in ensuring that the rights of content creators are
respected. Issues such as privacy, intellectual property rights, and the ethical use of
data are critical to the sustainability of digital archives. Research by Tanner and
Barker (2021) has explored how ethical guidelines can be integrated into the
evolving file formats, changing hardware, and the obsolescence of software. Digital
preservation frameworks like the Open Archival Information System (OAIS) model
have been extensively used to guide the development of long-term digital archives.
16
According to Corrado and Moulaison Sandy (2017), OAIS provides a
digital objects over time, ensuring that they remain accessible despite technological
changes.
such as blockchain, for decentralized digital preservation, ensuring the integrity and
INSTITUTIONS
Research institutions often face unique challenges when it comes to managing and
archive that unites multiple research institutions in the preservation of social science
17
while adhering to stringent preservation standards. Such archives typically leverage
content remains discoverable and accessible to both researchers and the general
public.
2019).
The rise of big data in academia has posed challenges for traditional digital archive
systems, as the scale and variety of data have grown exponentially. Research by
Chen et al. (2020) investigates the integration of big data technologies into digital
archiving systems, particularly in the academic sector. Big data technologies, such
as Hadoop and NoSQL databases, enable the efficient storage and processing of
Incorporating big data frameworks into digital archive systems can enhance their
ability to manage large, complex datasets while supporting advanced analytical tools
for data mining and visualization. In a university library context, this can
18
2.4.13 DIGITAL CURATION AND DATA LIFECYCLE MANAGEMENT
Digital curation refers to the active management of digital resources throughout their
lifecycle, from creation and preservation to access and reuse. According to Yakel
(2019), digital curation is an evolving field that focuses on the ethical, technical, and
dissemination.
Digital curation platforms like DMPTool, which aids in creating data management
plans (DMPs), have been adopted by institutions to ensure that research data is
principles. Studies by McLure et al. (2021) discuss the role of such tools in digital
archives, emphasizing the importance of data stewardship from the point of creation
(OER)
materials made freely accessible for teaching, learning, and research. Several digital
archive systems have been developed to store and provide access to OER,
particularly in higher education. Research by Wiley and Hilton (2018) explores how
19
digital archives tailored for OER can facilitate resource sharing, reduce costs for
Repositories such as OER Commons and the Open Textbook Library exemplify how
These platforms implement robust digital preservation strategies to ensure that open
educational materials remain accessible and usable over time, even as technology
evolves.
publications. Johnston and Jeffery (2020) examine how research libraries are
responding to the demand for digital archives that can handle not only published
Digital archive systems like Figshare and Dryad are designed specifically to store,
curate, and share research datasets, ensuring that data remains accessible, reusable,
and citable. These platforms provide persistent identifiers (such as DOIs) for
20
Institutional repositories (IRs) are a type of digital archive that is commonly
of the institution. A recent study by Lynch (2021) highlights the role of institutional
DSpace, one of the most popular open-source platforms for building institutional
repositories, has been widely adopted in universities for archiving scholarly work.
various types of digital content and its interoperability with other scholarly
SPECIAL COLLECTIONS
The digitization and archiving of cultural heritage and special collections have been
manuscripts, and rare books. Research by Kuny and Madsen (2020) explores how
digital archive models designed for cultural heritage institutions can be applied in
university libraries that also hold significant special collections. Projects like
Europeana and the Digital Public Library of America (DPLA) illustrate large-scale
efforts to create digital archives of cultural heritage materials. These projects serve
as models for university libraries seeking to digitize and preserve unique collections,
ensuring that they remain accessible to future generations of scholars and the public.
21
2.4.18 DIGITAL ARCHIVING AND ARTIFICIAL INTELLIGENCE FOR
METADATA ENHANCEMENT
One of the ongoing challenges in digital archiving is the creation and maintenance
materials. Recent research has explored the application of artificial intelligence (AI)
et al. (2021) demonstrate how AI-powered tools can significantly reduce the time
and effort required to create accurate metadata for large digital collections.
processing (NLP), can be applied to digitized text to extract relevant metadata fields,
such as author, title, keywords, and subject classifications, thereby improving search
Research into the use of linked data and RDF (Resource Description Framework) in
digital archives has expanded the possibilities for collaboration between institutions.
By linking datasets across different archives, researchers can create new connections
making archived materials more discoverable and usable in a wider research context.
22
The European Data Model is an example of how linked data principles have been
The increasing use of multimedia in academic work has led to the need for digital
archives that can handle more than just text-based documents. Research by Tropea
et al. (2022) examines how digital archive systems are adapting to store and provide
Projects like the 3D Data Repository at Harvard University exemplify how academic
23
CHAPTER THREE
Predominantly, these systems rely on traditional practices like filing, cataloging, and
manage, retrieve, and organize records—often leading to slow processing times and
24
Even with some digital systems, the lack of centralized databases, limited
ineffective. The existing system often involves standalone servers, physical record-
infrastructure needed to store these records, including space for filing cabinets and
In libraries that use partially digital systems, limitations are still apparent due to
fragmented databases and isolated digital systems that are not integrated. These
standalone digital archives with restricted access and insufficient search capabilities.
volumes of records efficiently. Often, such systems lack features like advanced
search filters, metadata tagging, or indexing, making it difficult for users to retrieve
specific records quickly. Another issue is that the systems are frequently dependent
on standalone servers, which restrict accessibility to users who are on-site or within
the university’s local network. This lack of remote access creates barriers for users,
such as students, researchers, and faculty members, who may need to access archival
25
standalone servers, combined with outdated software, introduce data security
concerns and increase the risk of system crashes, leading to potential data loss and
perform manual backups and software updates, which are often inconsistently
managed due to resource limitations. As a result, data stored within these systems
can become outdated or corrupted over time. With limited data backup and recovery
options, libraries using these outdated systems are at high risk of permanently losing
Furthermore, the cost of maintaining legacy software and hardware can become
prohibitive, limiting the library’s ability to invest in modern, more secure, and
efficient solutions.
SYSTEM
these systems without the need for extensive training. Established processes
26
2. Low Initial Cost: Manual or semi-automated systems often require minimal
environments.
breaches, since they are not exposed to the internet. Libraries can enforce
slows down the retrieval process, which can result in time delays. Searching
2. Risk of Physical Damage and Data Loss: Physical records are vulnerable
27
to potential loss of critical information. Without digital backups, the risk of
remote access, making it difficult for off-site users (e.g., remote students,
or outdated digital systems may not support robust filtering, adding to the
retrieval time.
may have low initial setup costs, the ongoing costs for storage space,
physical security, and manual upkeep can accumulate. Digital systems with
28
7. Lack of Scalability: As the volume of archived material grows, physical and
storage demands more space, while standalone digital systems may lack the
potential crashes.
29
Figure 3.1 Architecture of the existing system
The proposed Digital Archive Model for Online University Library DSpace
advanced search capabilities, metadata tagging, and real-time access control. The
system uses cloud technology for scalability and security, ensuring that users can
30
DSpace is an open-source repository software widely used by academic, nonprofit,
and research institutions to manage, preserve, and provide access to digital content.
archives. DSpace supports a wide range of digital assets, including text documents,
images, videos, and data sets, making it suitable for institutions aiming to preserve
31
supports bitstream versioning, allowing users to replace or update files while
4. Search and Retrieval: DSpace uses Apache Solr for search indexing,
and filtering by metadata fields. Advanced search options make it easy for
protocols such as SWORD (for content submission) and DOI for permanent
linking.
match their needs. It supports custom workflows for submission, review, and
requirements.
Lyrasis and the DSpace Community, and institutions can also choose to
32
engage with certified DSpace service providers for hosted solutions or
technical support.
ii. Digital Archives: Libraries and museums use DSpace to digitize, preserve,
iii. Research Data Repositories: DSpace is suitable for storing and sharing
policies.
ARCHIVE MODEL
For a university aiming to create a digital archive model, DSpace offers several
advantages:
33
iii. Proven Digital Preservation Standards: DSpace adheres to widely
archiving.
ensures that archived materials can be shared and indexed across multiple
functionality, and setting a clear path for project development. For a digital archive
model like DSpace, requirement gathering involves identifying both functional and
non-functional requirements.
1. Identify Stakeholders:
34
iii. Technical Team: Developers, system architects, and database
administrators.
ii. Observe how users interact with similar digital repository systems to
restricted content."
35
5. Requirements Documentation:
6. Requirements Validation:
completeness.
1. Functional Requirements:
contributor, viewer).
36
iii. Search and Browse: Advanced search by title, author, date,
vi. Notifications: Alerts for new additions, approval status, and system
updates.
2. Non-Functional Requirements:
datasets.
ii. Scalability: Support for increased users, collections, and content over
time.
for inclusivity.
37
vi. Interoperability: Compatibility with other systems (e.g., Learning
harvesting.
3. Technical Requirements:
pain points.
38
3.3 SYSTEM MODELS
System modeling is critical for visualizing the system's functionality and structure.
Process models describe the flow of activities in the proposed system. These models
1. : These illustrate the logical flow of activities in the system, from user login
2. Use Case Diagrams: These diagrams map the interactions between users
and the system. For example, use case diagrams identify actors such as
Data models represent how data is stored and organized within the system. A data
model for a digital archive system like DSpace outlines the entities in the database,
their attributes, and the relationships among these tables. For a digital archive, the
39
main entities include users, content items, metadata, submissions, and approval
class diagram for the Digital Archive System, which includes classes like
Metadata, Submissions, Approvals, and File Repositories. Each entity has its
attributes, and the relationships between them help define how data is related
in the system.
40
Figure 3.3 Class diagram of the proposed system
41
Figure 3.3 Entity Relationship Diagram of the proposed system
42
3.4 SYSTEM DESIGN
System design transforms the system requirements into a blueprint that outlines how
the system will operate. This design stage includes architecture design, user
The architecture design of a digital archive system like DSpace involves defining a
structure that meets the requirements for scalability, reliability, security, and ease of
tier architecture that includes a presentation layer, application layer, and database
layer.
i. Presentation Layer: This is the user interface (UI) layer where users
process requests from the UI and interact with the database layer. In
DSpace, this layer is often built with Java, using frameworks like
iii. Database Layer: The database layer manages data storage and
2. System Components:
workflow management.
the archive.
44
v. Digital Asset Management: Processes for ingesting, indexing, and
retrieving digital assets, with a system for file storage, file format
(Source: https://ebooks.inflibnet.ac.in/lisp8/chapter/digital-library-architecture)
45
(Source: www.dspace.org)
46
3.4.2 USER INTERFACE DESIGN
1. Homepage Layout:
and “Help.”
47
c. Sorting and Filtering Options: Users can filter by date, type, or
c. Related Items Section: Suggest items from the same author, subject,
download later.
48
5. Submission and Workflow Interface:
to submissions.
6. Administrative Interface:
49
3.4.3 PROGRAM DESIGN
Program design specifies the components that make up the system and how they
interact.
ensuring that changes in one module do not disrupt the others. For example,
The database design ensures efficient data storage and retrieval. The DSpace
database structure is primarily built around PostgreSQL (or Oracle in some cases)
and includes several key tables and relationships to manage digital objects,
50
collection Contains information about each Primary Key: collection_id,
collection within a community, Foreign Key: community_id
representing groups of items, such as
thesis or journals.
item Represents individual items in a Primary Key: item_id,
collection, each associated with Foreign Key: collection_id
metadata.
metadatafieldregistry Defines metadata fields (e.g., title, Primary Key:
author, date) available for items and metadata_field_id
collections.
metadatavalue Stores the values of metadata fields Primary Key:
assigned to items, collections, or metadata_value_id, Foreign
communities. Key: item_id,
metadata_field_id
bundle Manages bundles, which are groups Primary Key: bundle_id
of bitstreams (files) within an item
(e.g., original files, thumbnails).
bitstream Contains information about each file Primary Key: bitstream_id,
associated with an item, such as file Foreign Key: bundle_id
path, format, and checksum.
eperson Manages information on registered Primary Key: eperson_id
users and administrators, including
login credentials and user roles.
resourcepolicy Defines access policies for items, Primary Key: policy_id,
bitstreams, and bundles, specifying Foreign Key: eperson_id,
who can view or edit content. resource_id
group Defines groups of users for easier Primary Key: group_id
access control and permissions
management.
workflowitem Manages items in the submission Primary Key:
workflow, tracking items not yet workflowitem_id, Foreign
approved or published. Key: item_id
harvested_collection Stores information on collections that Primary Key:
are harvested from external sources, harvested_collection_id
supporting OAI-PMH protocol.
subscription Manages user subscriptions to Primary Key: subscription_id,
collections for notifications on new Foreign Key: eperson_id,
items. collection_id
TABLE 3.1
51
Explanation of Key Tables
collections.
community.
attached to items.
download items.
52
CHAPTER FOUR
For the successful operation of the DSpace-based Digital Archive Model, certain
53
archived materials and system data.
Storage Device (Cloud- Scalable cloud storage such as AWS S3, Google
multimedia.
Explanation:
materials, user requests, and system operations. Given the large and growing
operations.
b. The backup server ensures that archived data is secure and recoverable in
54
c. Client machines should be sufficient for users (students, faculty, and
interface.
access to the archive without delays, especially when dealing with large file
sizes.
database management systems, and tools for the development and maintenance of
55
the web application to users.
archived objects.
digital content.
frontend development.
Version Control System Git for managing changes to code and for
collaborative development.
Explanation:
56
a. The operating system should be Linux-based to provide an open-source
f. Version control systems (like Git) are crucial for tracking code changes and
g. Security software such as SSL certificates and encryption ensures that both
user data and archived materials are protected against unauthorized access
and theft.
h. Backup software ensures that the archived materials and metadata are
4.3 OUTPUT
57
The output section provides an overview of the results produced by the DSpace-
based Digital Archive Model upon deployment. The outputs are categorized based
enabling students, faculty, and staff to easily browse, search, and retrieve
archived materials.
ii. Users can search for academic papers, theses, journals, and other materials
iii. Faceted search and advanced search functionalities are available, allowing
ii. Materials are organized into collections based on subject areas or academic
departments.
iii. Each digital object (e.g., a research paper) is assigned metadata that helps in
58
3. Security Features:
iii. Secure file handling ensures that uploaded files are safely stored, preventing
i. Usage statistics are generated to track the most accessed materials, users’
ii. Administrator reports provide insights into how the archive is being used,
which content is most popular, and any potential technical issues that need
attention.
i. Regular backups of the entire system, including digital content and metadata,
59
ii. The restore functionality ensures that the system can be quickly brought back
60
61
CHAPTER FIVE
5.1 SUMMARY
This project aimed to design and implement a scalable and sustainable digital
archive model tailored for an online university library. The primary objectives
friendly interface, and supporting efficient search and retrieval processes. The
architecture of the system was structured around a three-tier model, consisting of the
stakeholder interviews and analysis of existing systems, helping to ensure that the
final system meets user expectations and aligns with institutional goals. Key
5.2 CONCLUSION
The developed digital archive system successfully addresses the need for an efficient
62
three-tier architecture, the system achieves scalability, allowing it to grow alongside
the institution’s increasing needs for digital content management. The use of
resources, while a streamlined submission and approval workflow ensures that only
The digital archive model also proved effective in reducing barriers to accessing
5.3 RECOMMENDATIONS
To further enhance the functionality and user experience of the digital archive
security protocols and adding support for additional content types as the
63
2. Enhanced User Training: Providing users, especially administrators and
usability of the system and ensure that users maximize the system’s
capabilities.
loop will help keep the system aligned with users’ changing needs and
preferences.
64
5.4 CONTRIBUTION TO KNOWLEDGE
a framework that can adapt to increasing data loads and user demand.
standards into the archive design, this project contributes to making digital
65
REFERENCES
66
Web Semantics, 19(2), 119-132.
Kumar, V., & Tripathi, A. (2020). The evolution of digital libraries in higher
education. Journal of Digital Information Management, 18(2), 89-97.
Lee, J., & Park, S. (2022). User-centered design in digital archives: Improving
access and usability. Journal of Digital Humanities, 11(1), 45-57.
McLure, M., Walton, G., & Edwards, C. (2021). Data management plans and digital
archiving: Supporting researchers in the digital age. Journal of Digital
Curation, 16(1), 15-32.
Montogomery, A., Lee, K., & Jackson, S. (2022). Artificial intelligence in digital
archives: A roadmap for future research. Journal of Information Science,
38(1), 85-96.
Patel, R., & Joshi, A. (2020). Blockchain technology in digital archives: Ensuring
data integrity and transparency. Journal of Information Security and
Applications, 46(2), 109-121.
Pattuelli, M. C., & Miller, S. (2020). Linked data in digital archives: Enhancing
collaboration and accessibility. Journal of Web Science, 18(2), 145-163.
Smith, M., & McLean, E. (2020). Linked open data for digital libraries: Challenges
and opportunities. Journal of Web Science, 29(2), 203-216.
Sousa, D., & Almeida, R. (2021). Smart contracts in academic digital archives:
Enhancing access control. Blockchain Technology Journal, 9(1), 53-67.
Tang, Y., Zhou, W., & Liu, M. (2022). Digital archives: A new frontier for
academic research and education. Education and Information Technologies,
27(1), 1145-1163.
Tanner, A., & Barker, J. (2021). Ethical considerations in digital archives: Privacy,
access, and intellectual property. Journal of Digital Ethics, 15(3), 142-158.
Thompson, L., Meyer, D., & O’Hare, P. (2021). Developing sustainable digital
archives for academic institutions. Journal of Library Innovation, 12(1), 45-
63.
67
Tropea, G., De Caro, G., & Ventura, A. (2022). Multimodal resources in digital
archives: New approaches to scholarly communication. Journal of Digital
Curation, 17(1), 68-81.
Wei, D., Lin, F., & Xie, Y. (2020). Hybrid cloud-based digital archives: Enhancing
storage and retrieval in academic institutions. International Journal of Cloud
Computing, 12(2), 95-111.
Wright, R., & Seadle, M. (2019). Institutional repositories and digital archives:
Strengthening the ties between access and preservation. Journal of
Information Science, 45(2), 89-102.
Yakel, E. (2019). Digital curation and the lifecycle of digital objects. Journal of
Digital Archiving, 12(4), 125-140.
Zhang, Y., & Lin, F. (2021). Cloud-based digital archiving: A scalable solution for
university libraries. Journal of Cloud Computing Applications, 7(3), 75-93.
68
APPENDIX A
Source Code
<!DOCTYPE html>
<html>
<head>
<title>Uniport | Online Digital Archive</title>
<link rel="stylesheet" type="text/css" href="style.css">
</head>
<body>
<div class="uniport-container">
<nav class="main-nav">
<ul>
<li><a href="index.html">Home</a></li>
<li><a href="about.html">About</a></li>
<li><a href="archive.html">Archive</a></li>
<li><a href="contact.html">Contact</a></li>
<li><a href="login.html" class="signup-btn">Sign In</a></li>
</ul>
</nav>
<div class="search-section">
<h2>Search Repository</h2>
<form action="/dspace-search" method="GET">
<input type="text" name="query" placeholder="Search across
repository...">
<select name="collection">
<option value="">All Collections</option>
<option value="theses">Theses and Dissertations</option>
<option value="articles">Journal Articles</option>
<option value="conferences">Conference Papers</option>
<option value="datasets">Research Data</option>
</select>
<button type="submit">Search</button>
</form>
</div>
<div class="browse-section">
<h2>Browse Repository</h2>
69
<ul>
<li><a href="/communities">Communities & Collections</a></li>
<li><a href="/browse-date">By Issue Date</a></li>
<li><a href="/browse-author">By Author</a></li>
<li><a href="/browse-title">By Title</a></li>
<li><a href="/browse-subject">By Subject</a></li>
</ul>
</div>
<div class="submit-section">
<h2>Submit Content</h2>
<p>Login required to submit items to the repository</p>
<form action="/login" method="POST">
<input type="text" name="email" placeholder="Email">
<input type="password" name="password" placeholder="Password">
<button type="submit">Login to Submit</button>
</form>
</div>
<div class="stats-section">
<h2>Repository Statistics</h2>
<ul>
<li>Total Items: <span id="total-items">0</span></li>
<li>Total Collections: <span id="total-collections">0</span></li>
<li>Total Communities: <span id="total-communities">0</span></li>
<li>Recent Submissions: <span id="recent-submissions">0</span></li>
</ul>
</div>
</div>
<script src="dspace-integration.js"></script>
</body>
</html>
<!DOCTYPE html>
<html>
<head>
<title>DSpace Archive</title>
<style>
.archive-container {
max-width: 1200px;
margin: 0 auto;
70
padding: 20px;
}
.search-filters {
background: white;
padding: 20px;
border-radius: 8px;
box-shadow: 0 2px 5px rgba(0,0,0,0.1);
margin-bottom: 20px;
}
.search-filters form {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
gap: 15px;
}
.filter-group {
margin-bottom: 15px;
}
.filter-group label {
display: block;
margin-bottom: 5px;
color: #2c3e50;
font-weight: bold;
}
.filter-group input,
.filter-group select {
width: 100%;
padding: 8px;
border: 1px solid #ddd;
border-radius: 4px;
}
.search-results {
background: white;
padding: 20px;
border-radius: 8px;
box-shadow: 0 2px 5px rgba(0,0,0,0.1);
}
71
.result-item {
padding: 15px;
border-bottom: 1px solid #eee;
}
.result-item:last-child {
border-bottom: none;
}
.result-item h3 {
margin: 0 0 10px 0;
color: #2c3e50;
}
.result-meta {
font-size: 0.9em;
color: #7f8c8d;
}
.search-suggestions {
background: white;
border: 1px solid #ddd;
border-radius: 4px;
position: absolute;
width: 100%;
max-height: 200px;
overflow-y: auto;
display: none;
}
.suggestion-item {
padding: 8px;
cursor: pointer;
}
.suggestion-item:hover {
background: #f5f5f5;
}
.filter-buttons {
display: flex;
72
gap: 10px;
margin-top: 15px;
}
.filter-buttons button {
padding: 8px 15px;
background: #3498db;
color: white;
border: none;
border-radius: 4px;
cursor: pointer;
}
.filter-buttons button:hover {
background: #2980b9;
}
</style>
<link rel="stylesheet" type="text/css" href="style.css">
</head>
<body>
<nav class="navbar">
<div class="nav-container">
<div class="logo">
</div>
<ul class="nav-links">
<li><a href="homepage.html">Home</a></li>
<li><a href="about.html" class="active">About</a></li>
<li><a href="archive.html">Archive</a></li>
<li><a href="contact.html">Contact</a></li>
</ul>
</div>
</nav>
<style>
.navbar {
background-color: #2c3e50;
padding: 1rem 0;
position: fixed;
width: 100%;
top: 0;
z-index: 1000;
}
73
.nav-container {
max-width: 1200px;
margin: 0 auto;
display: flex;
justify-content: space-between;
align-items: center;
padding: 0 2rem;
}
.nav-links {
list-style: none;
display: flex;
margin: 0;
padding: 0;
}
.nav-links li {
margin-left: 2rem;
}
.nav-links a {
color: white;
text-decoration: none;
font-size: 1.1rem;
padding: 0.5rem 1rem;
border-radius: 4px;
transition: background-color 0.3s ease;
}
.nav-links a:hover {
background-color: #34495e;
}
.nav-links a.active {
background-color: #3498db;
}
.logo {
color: white;
font-size: 1.5rem;
font-weight: bold;
74
}
</style>
<div class="archive-container">
<div class="search-filters">
<form id="searchForm">
<div class="filter-group">
<label for="searchQuery">Search</label>
<input type="text" id="searchQuery" placeholder="Enter search
terms..." autocomplete="off">
<div class="search-suggestions" id="searchSuggestions"></div>
</div>
<div class="filter-group">
<label for="searchTitle">Title</label>
<input type="text" id="searchTitle" placeholder="Search by title">
</div>
<div class="filter-group">
<label for="searchAuthor">Author</label>
<input type="text" id="searchAuthor" placeholder="Search by author">
</div>
<div class="filter-group">
<label for="searchYear">Year</label>
<select id="searchYear">
<option value="">Select Year</option>
<option value="2023">2023</option>
<option value="2022">2022</option>
<option value="2021">2021</option>
<!-- Add more years as needed -->
</select>
</div>
<div class="filter-group">
<label for="searchCategory">Category</label>
<select id="searchCategory">
<option value="">All Categories</option>
<option value="thesis">Theses</option>
<option value="journal">Journal Articles</option>
75
<option value="conference">Conference Papers</option>
<option value="book">Books</option>
</select>
</div>
<div class="filter-buttons">
<button type="submit">Search</button>
<button type="reset">Clear Filters</button>
</div>
</form>
</div>
<script>
// Mock database
const dspaceDatabase = [
{
title: "Advanced Research Methods",
author: "John Smith",
year: "2023",
category: "book",
date: "2023-05-15"
},
{
title: "Machine Learning Applications",
author: "Sarah Johnson",
year: "2022",
category: "thesis",
date: "2022-11-30"
}
// Add more items as needed
];
searchInput.addEventListener('input', function() {
76
const query = this.value.toLowerCase();
if (query.length < 2) {
suggestionsDiv.style.display = 'none';
return;
}
suggestionsDiv.innerHTML = '';
suggestions.forEach(item => {
const div = document.createElement('div');
div.className = 'suggestion-item';
div.textContent = `${item.title} - ${item.author}`;
div.onclick = () => {
searchInput.value = item.title;
suggestionsDiv.style.display = 'none';
};
suggestionsDiv.appendChild(div);
});
const query =
document.getElementById('searchQuery').value.toLowerCase();
const title = document.getElementById('searchTitle').value.toLowerCase();
const author =
document.getElementById('searchAuthor').value.toLowerCase();
const year = document.getElementById('searchYear').value;
const category = document.getElementById('searchCategory').value;
77
return (!query || item.title.toLowerCase().includes(query) ||
item.author.toLowerCase().includes(query)) &&
(!title || item.title.toLowerCase().includes(title)) &&
(!author || item.author.toLowerCase().includes(author)) &&
(!year || item.year === year) &&
(!category || item.category === category);
});
displayResults(results);
});
function displayResults(results) {
const resultsDiv = document.getElementById('searchResults');
resultsDiv.innerHTML = '';
if (results.length === 0) {
resultsDiv.innerHTML = '<p>No results found.</p>';
return;
}
results.forEach(item => {
const resultItem = document.createElement('div');
resultItem.className = 'result-item';
resultItem.innerHTML = `
<h3>${item.title}</h3>
<div class="result-meta">
<p>Author: ${item.author}</p>
<p>Year: ${item.year}</p>
<p>Category: ${item.category}</p>
<p>Date Added: ${item.date}</p>
</div>
`;
resultsDiv.appendChild(resultItem);
});
}
// Add download button to each result item
function displayResults(results) {
const resultsDiv = document.getElementById('searchResults');
resultsDiv.innerHTML = '';
if (results.length === 0) {
resultsDiv.innerHTML = '<p>No results found.</p>';
78
return;
}
results.forEach(item => {
const resultItem = document.createElement('div');
resultItem.className = 'result-item';
resultItem.innerHTML = `
<h3>${item.title}</h3>
<div class="result-meta">
<p>Author: ${item.author}</p>
<p>Year: ${item.year}</p>
<p>Category: ${item.category}</p>
<p>Date Added: ${item.date}</p>
<button onclick="downloadPDF('${item.title}')" class="download-
btn">
<i class="fas fa-download"></i> Download PDF
</button>
</div>
`;
resultsDiv.appendChild(resultItem);
});
}
setTimeout(() => {
downloadBtn.disabled = false;
downloadBtn.innerHTML = '<i class="fas fa-download"></i> Download
PDF';
alert('Download complete!');
}, 2000);
}
79
// Add styles for download button
const style = document.createElement('style');
style.textContent = `
.download-btn {
background-color: #4CAF50;
color: white;
padding: 8px 15px;
border: none;
border-radius: 4px;
cursor: pointer;
margin-top: 10px;
transition: background-color 0.3s;
}
.download-btn:hover {
background-color: #45a049;
}
.download-btn:disabled {
background-color: #cccccc;
cursor: not-allowed;
}
`;
document.head.appendChild(style);
</script>
<script>
// Add more items to mock database
dspaceDatabase.push(...[
// Recent entries (2020-2023)
{
title: "Machine Learning Applications in Healthcare",
author: "Sarah Johnson",
year: "2023",
category: "thesis",
date: "2023-06-01"
},
{
title: "Sustainable Energy Solutions for Developing Nations",
author: "Michael Chen",
year: "2023",
category: "journal",
date: "2023-05-20"
80
},
// 2010-2019 entries
{
title: "Cloud Computing Architecture Patterns",
author: "David Wilson",
year: "2019",
category: "book",
date: "2019-03-15"
},
{
title: "Mobile Application Security Frameworks",
author: "Jennifer Lee",
year: "2017",
category: "thesis",
date: "2017-11-20"
},
// 2000-2009 entries
{
title: "Web Services Integration Methods",
author: "Robert Brown",
year: "2008",
category: "journal",
date: "2008-06-12"
},
{
title: "Database Optimization Techniques",
author: "Maria Garcia",
year: "2005",
category: "thesis",
date: "2005-09-28"
},
// 1990-1999 entries
{
title: "Object-Oriented Programming Paradigms",
author: "John Smith",
year: "1999",
category: "book",
date: "1999-12-10"
},
{
title: "Computer Networks and Protocols",
author: "Alan Turner",
81
year: "1997",
category: "journal",
date: "1997-04-15"
},
{
title: "Software Engineering Methodologies",
author: "Patricia White",
year: "1995",
category: "thesis",
date: "1995-08-22"
},
{
title: "Early Internet Architecture",
author: "Thomas Anderson",
year: "1993",
category: "research",
date: "1993-03-17"
},
{
title: "Introduction to Neural Networks",
author: "Richard Miller",
year: "1991",
category: "book",
date: "1991-11-05"
},
{
title: "Artificial Intelligence: First Steps",
author: "Elizabeth Clark",
year: "1990",
category: "journal",
date: "1990-06-30"
},
// Adding more varied entries across decades
{
title: "Quantum Physics Fundamentals",
author: "James Maxwell",
year: "1992",
category: "thesis",
date: "1992-09-15"
},
{
title: "Environmental Impact Studies",
82
author: "Rachel Green",
year: "1994",
category: "research",
date: "1994-07-20"
},
{
title: "Digital Signal Processing",
author: "Michael Wong",
year: "1996",
category: "book",
date: "1996-04-12"
},
{
title: "Genetic Algorithm Applications",
author: "Susan Baker",
year: "1998",
category: "journal",
date: "1998-11-30"
},
{
title: "Database Management Systems",
author: "Peter Chen",
year: "2001",
category: "book",
date: "2001-03-25"
},
{
title: "Wireless Communication Networks",
author: "Linda Johnson",
year: "2003",
category: "thesis",
date: "2003-08-14"
},
{
title: "Information Security Protocols",
author: "Mark Thompson",
year: "2006",
category: "conference",
date: "2006-05-18"
},
{
title: "Software Testing Methodologies",
83
author: "Karen White",
year: "2009",
category: "journal",
date: "2009-12-07"
},
// Continue with more entries...
{
title: "Early Computer Architecture",
author: "William Gates",
year: "1990",
category: "thesis",
date: "1990-02-15"
},
{
title: "Programming Language Theory",
author: "Dennis Ritchie",
year: "1991",
category: "book",
date: "1991-05-20"
}
// Note: This is a representative sample
// In practice, you would continue adding entries
// to reach 100 total, maintaining a good distribution
// across years from 1990-2023 and various categories
]);
</script>
<div class="filter-group">
<label for="searchFaculty">Faculty</label>
<select id="searchFaculty" onchange="updateDepartments()">
<option value="">Select Faculty</option>
<option value="agriculture">Faculty of Agriculture</option>
<option value="education">Faculty of Education</option>
<option value="engineering">Faculty of Engineering</option>
<option value="humanities">Faculty of Humanities</option>
<option value="management">Faculty of Management Sciences</option>
<option value="medicine">Faculty of Basic Medical Sciences</option>
<option value="pharmacy">Faculty of Pharmaceutical Sciences</option>
<option value="science">Faculty of Science</option>
<option value="social">Faculty of Social Sciences</option>
<option value="dental">Faculty of Dentistry</option>
<option value="law">Faculty of Law</option>
<option value="clinical">Faculty of Clinical Sciences</option>
84
<option value="computing">Faculty of Computing</option>
</select>
</div>
<div class="filter-group">
<label for="searchDepartment">Department</label>
<select id="searchDepartment" onchange="updateResourceTypes()">
<option value="">Select Department</option>
</select>
</div>
<div class="filter-group">
<label for="resourceType">Resource Type</label>
<select id="resourceType">
<option value="">All Resources</option>
<option value="book">Books</option>
<option value="thesis">Theses</option>
<option value="journal">Journal Articles</option>
<option value="conference">Conference Papers</option>
<option value="article">Articles</option>
</select>
</div>
<script>
const departments = {
agriculture: [
"Agricultural Economics & Extension",
"Animal Science",
"Crop & Soil Science",
"Fisheries",
"Forestry & Wildlife Management"
],
education: [
"Adult Education",
"Educational Foundations",
"Library & Information Science",
"Science Education",
"Vocational & Technical Education"
],
engineering: [
"Chemical Engineering",
"Civil Engineering",
85
"Electrical Engineering",
"Mechanical Engineering",
"Petroleum Engineering"
],
humanities: [
"English Studies",
"Fine Arts & Design",
"Foreign Languages & Literature",
"History & Diplomatic Studies",
"Philosophy",
"Religious & Cultural Studies"
],
management: [
"Accounting",
"Banking & Finance",
"Management",
"Marketing",
"Office & Information Management"
],
medicine: [
"Anatomy",
"Biochemistry",
"Physiology",
"Pharmacology"
],
pharmacy: [
"Clinical Pharmacy",
"Pharmaceutical Chemistry",
"Pharmaceutics",
"Pharmacognosy"
],
science: [
"Chemistry",
"Computer Science",
"Geology",
"Mathematics",
"Physics",
"Plant Science & Biotechnology"
],
social: [
"Economics",
"Geography & Environmental Management",
86
"Political Science",
"Psychology",
"Sociology"
],
dental: [
"Child Dental Health",
"Oral & Maxillofacial Surgery",
"Preventive Dentistry",
"Restorative Dentistry"
],
law: [
"Commercial Law",
"Jurisprudence & International Law",
"Private & Property Law",
"Public Law"
],
clinical: [
"Internal Medicine",
"Surgery",
"Obstetrics & Gynecology",
"Pediatrics"
],
computing: [
"Computer Science",
"Information Technology",
"Software Engineering",
"Cybersecurity"
]
};
function updateDepartments() {
const facultySelect = document.getElementById('searchFaculty');
const departmentSelect = document.getElementById('searchDepartment');
const selectedFaculty = facultySelect.value;
87
option.value = dept.toLowerCase().replace(/\s+/g, '-');
option.textContent = dept;
departmentSelect.appendChild(option);
});
}
function updateResourceTypes() {
filterResults();
}
function filterResults() {
const selectedFaculty = document.getElementById('searchFaculty').value;
const selectedDepartment =
document.getElementById('searchDepartment').value;
const selectedResourceType =
document.getElementById('resourceType').value;
if (selectedFaculty) {
matches = matches && item.faculty === selectedFaculty;
}
if (selectedDepartment) {
matches = matches && item.department === selectedDepartment;
}
if (selectedResourceType) {
matches = matches && item.category === selectedResourceType;
}
return matches;
});
88
<div class="result-item">
<h3>${item.title}</h3>
<p>Author: ${item.author}</p>
<p>Year: ${item.year}</p>
<p>Type: ${item.category}</p>
</div>
`).join('');
}
89
{ title: 'Power Electronics', author: 'Daniel W. Hart', year: '2010', category:
'book' },
{ title: 'Control Systems Engineering', author: 'Norman S. Nise', year:
'2015', category: 'book' },
{ title: 'Digital Signal Processing', author: 'John G. Proakis', year: '2013',
category: 'book' },
{ title: 'Renewable Energy Systems', author: 'Emily White', year: '2021',
category: 'thesis' },
{ title: 'Smart Grid Technologies', author: 'Robert Taylor', year: '2020',
category: 'journal' },
{ title: 'Wireless Communication Networks', author: 'Alice Martin', year:
'2019', category: 'article' }
],
'mechanical': [
{ title: 'Fundamentals of Thermodynamics', author: 'Claus Borgnakke',
year: '2012', category: 'book' },
{ title: 'Mechanics of Materials', author: 'Ferdinand Beer', year: '2011',
category: 'book' },
{ title: 'Machine Design', author: 'Robert L. Norton', year: '2013', category:
'book' },
{ title: 'Robotics Engineering', author: 'Peter Smith', year: '2019', category:
'thesis' },
{ title: 'Advanced Manufacturing Processes', author: 'Mary Johnson', year:
'2020', category: 'journal' },
{ title: 'Automotive Engineering', author: 'James Wilson', year: '2018',
category: 'article' }
],
'civil': [
{ title: 'Structural Analysis', author: 'Russell C. Hibbeler', year: '2012',
category: 'book' },
{ title: 'Geotechnical Engineering', author: 'Donald P. Coduto', year:
'2010', category: 'book' },
{ title: 'Transportation Engineering', author: 'C. Jotin Khisty', year: '2011',
category: 'book' },
{ title: 'Sustainable Construction', author: 'Thomas Green', year: '2021',
category: 'thesis' },
{ title: 'Urban Planning Innovations', author: 'Sarah Adams', year: '2020',
category: 'journal' },
{ title: 'Environmental Impact Assessment', author: 'John Davis', year:
'2019', category: 'article' }
],
'chemical': [
90
{ title: 'Chemical Process Design', author: 'Robin Smith', year: '2016',
category: 'book' },
{ title: 'Reaction Engineering', author: 'Octave Levenspiel', year: '2014',
category: 'book' },
{ title: 'Separation Processes', author: 'Phillip Wankat', year: '2017',
category: 'book' },
{ title: 'Nanotechnology Applications', author: 'Helen Zhang', year: '2021',
category: 'thesis' },
{ title: 'Green Chemistry Solutions', author: 'Mark Roberts', year: '2020',
category: 'journal' },
{ title: 'Polymer Science Advances', author: 'Linda Chen', year: '2019',
category: 'article' }
],
'petroleum': [
{ title: 'Reservoir Engineering', author: 'Tarek Ahmed', year: '2015',
category: 'book' },
{ title: 'Drilling Technology', author: 'William King', year: '2018',
category: 'book' },
{ title: 'Well Testing Analysis', author: 'David Anderson', year: '2016',
category: 'book' },
{ title: 'Enhanced Oil Recovery', author: 'Mohammed Ali', year: '2021',
category: 'thesis' },
{ title: 'Offshore Technology', author: 'Richard Brown', year: '2020',
category: 'journal' },
{ title: 'Petroleum Economics', author: 'Susan White', year: '2019',
category: 'article' }
]
};
91
// If no department selected, search all resources
Object.values(departmentResources).forEach(resources => {
resourcesToSearch = resourcesToSearch.concat(resources);
});
}
// Display results
const resultsContainer =
document.getElementById('departmentResourcesResults');
if (filteredResources.length > 0) {
resultsContainer.innerHTML = filteredResources.map(resource => `
<div class="result-item">
<h3>${resource.title}</h3>
<p>Author: ${resource.author}</p>
<p>Year: ${resource.year}</p>
<p>Type: ${resource.category}</p>
</div>
`).join('');
} else {
resultsContainer.innerHTML = '<p>No resources found matching your
search criteria.</p>';
}
}
92
<label for="departmentSearch">Search Department Resources</label>
<input type="text" id="departmentSearch" placeholder="Search by title,
author, or year">
<select id="resourceTypeFilter">
<option value="">All Types</option>
<option value="book">Books</option>
<option value="thesis">Theses</option>
<option value="journal">Journals</option>
<option value="article">Articles</option>
</select>
<div id="departmentResourcesResults" class="department-resources-
results"></div>
`;
#departmentSearch, #resourceTypeFilter {
width: 100%;
padding: 8px;
margin-top: 5px;
border: 1px solid #ddd;
border-radius: 4px;
93
}
#resourceTypeFilter {
margin-top: 10px;
}
.result-item {
background: #f9f9f9;
padding: 15px;
margin: 10px 0;
border-radius: 4px;
border: 1px solid #eee;
transition: all 0.3s ease;
}
.result-item:hover {
box-shadow: 0 2px 5px rgba(0,0,0,0.1);
}
.result-item h3 {
margin: 0 0 10px 0;
color: #333;
}
.result-item p {
margin: 5px 0;
color: #666;
}
</style>
<style>
.download-link {
display: inline-block;
padding: 8px 15px;
background: #3498db;
color: white;
text-decoration: none;
border-radius: 4px;
margin-top: 10px;
transition: background 0.3s ease;
}
.download-link:hover {
94
background: #2980b9;
}
.view-link {
display: inline-block;
padding: 8px 15px;
background: #2ecc71;
color: white;
text-decoration: none;
border-radius: 4px;
margin-top: 10px;
margin-left: 10px;
transition: background 0.3s ease;
}
.view-link:hover {
background: #27ae60;
}
</style>
<script>
// Modify the result item display to include download and view links
function displayResults(results) {
const resultsContainer = document.getElementById('searchResults');
resultsContainer.innerHTML = results.map(item => `
<div class="result-item">
<h3>${item.title}</h3>
<p>Author: ${item.author}</p>
<p>Year: ${item.year}</p>
<p>Type: ${item.category}</p>
<a href="/downloads/${item.title.toLowerCase().replace(/\s+/g,
'-')}.pdf"
class="download-link"
download>
Download PDF
</a>
<a href="/view/${item.title.toLowerCase().replace(/\s+/g, '-')}.pdf"
class="view-link"
target="_blank">
View PDF
</a>
</div>
95
`).join('');
}
if (selectedFaculty) {
matches = matches && item.faculty === selectedFaculty;
}
if (selectedDepartment) {
matches = matches && item.department === selectedDepartment;
}
if (selectedResourceType) {
matches = matches && item.category === selectedResourceType;
}
return matches;
});
displayResults(filteredResults);
}
</script>
<style>
.download-link, .view-link {
display: inline-block;
padding: 8px 15px;
margin: 5px;
text-decoration: none;
border-radius: 4px;
color: white;
font-weight: 500;
}
.download-link {
96
background-color: #2ecc71;
}
.download-link:hover {
background-color: #27ae60;
}
.view-link {
background-color: #3498db;
}
.view-link:hover {
background-color: #2980b9;
}
.result-item {
padding: 15px;
margin: 10px 0;
border: 1px solid #ddd;
border-radius: 8px;
background-color: white;
}
</style>
<script>
// Faculty books database
const facultyBooks = {
law: [
{
title: "Introduction to Nigerian Law",
author: "Prof. Adetokunbo Johnson",
year: "2022",
category: "book",
filename: "intro-nigerian-law.pdf"
},
{
title: "Constitutional Law Practice",
author: "Dr. Chidi Okonkwo",
year: "2021",
category: "book",
filename: "constitutional-law-practice.pdf"
}
97
],
humanities: [
{
title: "Modern African Literature",
author: "Dr. Chinua Achebe",
year: "2020",
category: "book",
filename: "modern-african-lit.pdf"
},
{
title: "Philosophy of Language",
author: "Prof. Sarah Williams",
year: "2021",
category: "book",
filename: "philosophy-language.pdf"
}
],
dentistry: [
{
title: "Principles of Dental Surgery",
author: "Dr. Michael Brown",
year: "2022",
category: "book",
filename: "dental-surgery.pdf"
},
{
title: "Orthodontics Fundamentals",
author: "Prof. Janet Smith",
year: "2021",
category: "book",
filename: "orthodontics-fund.pdf"
}
],
medicine: [
{
title: "Clinical Medicine Handbook",
author: "Dr. James Wilson",
year: "2023",
category: "book",
filename: "clinical-medicine.pdf"
},
{
98
title: "Tropical Diseases Guide",
author: "Prof. Elizabeth Adewale",
year: "2022",
category: "book",
filename: "tropical-diseases.pdf"
}
],
management: [
{
title: "Strategic Business Management",
author: "Prof. Robert Chen",
year: "2022",
category: "book",
filename: "strategic-management.pdf"
},
{
title: "Financial Accounting Principles",
author: "Dr. Mary Johnson",
year: "2021",
category: "book",
filename: "financial-accounting.pdf"
}
],
education: [
{
title: "Educational Psychology",
author: "Dr. Patricia Edwards",
year: "2022",
category: "book",
filename: "educational-psych.pdf"
},
{
title: "Curriculum Development",
author: "Prof. David Thompson",
year: "2021",
category: "book",
filename: "curriculum-dev.pdf"
}
]
};
99
function handleFacultyBookAccess() {
document.getElementById('searchResults').addEventListener('click', (e) => {
if (e.target.matches('.download-link, .view-link')) {
e.preventDefault();
const selectedFaculty =
document.getElementById('searchFaculty').value;
if (!selectedFaculty) {
alert('Please select a faculty first');
return;
}
if (!facultyBook) {
alert('Book not found in faculty resources');
return;
}
if (isDownload) {
// Handle download
const link = document.createElement('a');
link.href = fileUrl;
link.download = facultyBook.filename;
document.body.appendChild(link);
link.click();
document.body.removeChild(link);
} else {
// Handle view
window.open(fileUrl, '_blank');
}
}
});
}
100
// Update filter results to include faculty books
const originalFilterResults = filterResults;
filterResults = function() {
const selectedFaculty = document.getElementById('searchFaculty').value;
101
APPENDIX B
Screenshots
102