0% found this document useful (0 votes)
6 views103 pages

Batch 3 Eduhub Empowering Learners Through Blogging

The project report titled 'EDUHUB - Empowering Learners Through Blogging' presents a blogging interface developed using Spring Boot and Hibernate, aimed at facilitating collaborative learning and knowledge sharing. The system allows administrators to manage content while enabling users to create, read, and comment on blogs, enhancing user engagement and interactivity. The report includes detailed sections on system architecture, features, technology stack, and development methodology, culminating in a comprehensive overview of the project's objectives and outcomes.

Uploaded by

Lokesh P
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
6 views103 pages

Batch 3 Eduhub Empowering Learners Through Blogging

The project report titled 'EDUHUB - Empowering Learners Through Blogging' presents a blogging interface developed using Spring Boot and Hibernate, aimed at facilitating collaborative learning and knowledge sharing. The system allows administrators to manage content while enabling users to create, read, and comment on blogs, enhancing user engagement and interactivity. The report includes detailed sections on system architecture, features, technology stack, and development methodology, culminating in a comprehensive overview of the project's objectives and outcomes.

Uploaded by

Lokesh P
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 103

EDUHUB – EMPOWERING LEARNERS THROUGH

BLOGGING

A PROJECT REPORT

Submitted by

GOKULSHANKAR P 71052002013

SANDHANARAJ NAVIN C 71052002044

SARANYA N 71052002048

THEOLA LOIS KEREN R 71052002055

in partial fulfilment for the award of the degree

of

BACHELOR OF ENGINEERING
IN

COMPUTER SCIENCE AND ENGINEERING

COIMBATORE INSTITUTE OF ENGINEERING AND TECHNOLOGY

(Autonomous)

COIMBATORE – 641109

MAY 2024
EDUHUB – EMPOWERING LEARNERS THROUGH

BLOGGING

A PROJECT REPORT

Submitted by

GOKULSHANKAR P 71052002013

SANDHANARAJ NAVIN C 71052002044

SARANYA N 71052002048

THEOLA LOIS KEREN R 71052002055

in partial fulfilment for the award of the degree

of

BACHELOR OF ENGINEERING
IN

COMPUTER SCIENCE AND ENGINEERING

COIMBATORE INSTITUTE OF ENGINEERING AND TECHNOLOGY

(Autonomous)

COIMBATORE – 641109

MAY 2024

I
COIMBATORE INSTITUTE OF ENGINEERING AND
TECHNOLOGY
(Autonomous/Approved by AICTE/Affiliated to Anna University)

COIMBATORE - 641109

BONAFIDE CERTIFICATE

Certified that this project report “EDUHUB - EMPOWERING LEARNERS


THROUGH BLOGGING” is the bonafide work of

GOKULSHANKAR P 20BCS013

SANDHANARAJ NAVIN C 20BCS044

SARANYA N 20BCS049

THEOLA LOIS KEREN R 20BCS055

who carried out the project work under my supervision.

SIGNATURE SIGNATURE

Dr. K. PUSHPALATHA, M.E., Ph.D. Dr. K. PUSHPALATHA, M.E.., Ph.D.

SUPERVISOR HEAD OF THE DEPARTMENT

Department of Computer Science and Department of Computer Science and


Engineering Engineering
Coimbatore Institute of Engineering and Coimbatore Institute of Engineering and
Technology, Technology,
Coimbatore – 641109 Coimbatore – 641109

Submitted for the University Project viva – voce held on

INTERNAL EXAMINER EXTERNAL EXAMINER

II
ACKNOWLEDGEMENT

Our hearts are filled with gratitude to Almighty God for empowering us with
the courage, wisdom, and strength to carry out this project work successfully.

We have great and immense pleasure in expressing acknowledgment to the


numerous contributors for the success of this project work.

We would like to record our sincere indebtedness and gratitude to ourbeloved


Director, Dr. K.A. Chinnaraju, M.Sc., M.B.A., Ph.D., for hisnoteworthy efforts
to enhance our professional dexterity and co-curricular excellence.

We are obliged to our respected Principal, Dr. N. Nagarajan, M.E., Ph.D.,


for providing us with necessary facilities to carry out our project work.

We express our sincere thanks to our Head of the Department, Project


coordinator, and guide Dr. K. Pushpalatha, M.E., Ph.D., for her guidance,
cooperation, and providing encouragement in completing this project.

Finally, we extend our thanks to the management, faculty members, parents,


and our student friends for their support and encouragement, and to all others who
extended their helping hands to us in the completion of our final year project.

III
ABSTRACT

In the digital age, blogs have emerged as a popular medium for online content
consumption, providing a platform for individuals to share their knowledge and
experiences with a global audience. This phenomenon has paved the way for the
exploration of network collaborative learning through the utilization of blogs and
blog groups. The goal of this project is to develop a blogging interface named
EDUHUB, designed for both administrators and general users. The architecture
will be based on Spring Boot and Hibernate, leveraging the Model-View-
Controller (MVC) pattern for web application development. The proposed system
will enable administrators to write and post articles, pictures, and codes.
Additionally, it will allow general users to read and comment on the blogs. User
authentication will be implemented to ensure secure access to personalized features.
Users will have the ability to create, update, and delete their own blog posts, as well
as engage with posts from other users through comments. The administrator will
have privileges to manage current blogs, archives, and tags. Forgeneral users,
EDUHUB will provide access to view the home page content, explore blogs
categorized under different archives and tags. This platform not onlyserves as a
blogging space but also functions as a dynamic learning platform, fostering efficient
knowledge sharing. Blogs have emerged as a prevalent mediumfor online content
consumption. Understanding the motivations behind creating and maintaining blogs
is crucial. Currently, network collaborative learning centered around blogs and blog
groups has garnered significant attention. This study delves into the theoretical
foundations, learning modes, processes, as well asadvantages and disadvantages of
network collaborative learning in the context of blogs and blog groups.
Furthermore, it briefly highlights the practical applications of this approach in real-
life scenarios.

IV
TABLE OF CONTENTS

CHAPTER NO. TITLE PAGE NO.


ABSTRACT IV
LIST OF FIGURES VIII
LIST OF TABLES IX
LIST OF ABBREVIATION X
1. INTRODUCTION 1
1.1 Overview 1
1.2 Problem statement 2
1.3 Drawbacks of the Existing system 2
1.4 Objective 3
1.5 Advantages of the proposed system 4
1.6 Significance of the project 4
1.7 Motivation and Future Scope 5
1.8 Applications of Blogging 6
2. LITERATURE REVIEW 7
2.1 Background studies 7
2.1.1 E- Learning platforms 7
2.1.2 Microservices Architecture 7
2.1.3 Java and Spring Boot Development 8
2.1.4 Database Management with Hibernate 8
and MySQL
2.1.5 Web development best practices 8
2.2 Key Concepts 9
2.2.1 Blogging Interface 9
2.2.2 User profile 9
2.2.3 Content Management System (CMS) 9
2.2.4 Rich Text Editor 10

V
2.2.5 Multimedia Integration 10
2.2.6 Commenting system 10
2.2.7 Responsive design 10
2.2.8 Analytics Dashboard 11
2.2.9 Gamification Elements 11
2.2.10 Accessibility Features 11
2.3 Research Papers 11
2.4 Previous Approaches 15
2.4.1 Monolithic Approach 15
2.4.2 Microservices Approach 16
2.5 Comparative Analysis 17
3. SYSTEM ARCHITECTURE 20
3.1 Web Application 20
3.2 Components in EduHub 22
3.3 Blogging Interface Architecture 25
3.4 Database Architecture 26
4. FEATURES AND FUNCTIONALITY 27
4.1 User Registration and Authentication 27
4.2 User Profiles 27
4.3 Content Creation and Management 27
4.4 Interactivity and Engagement 27
4.5 Search and Discovery 28
4.6 Learning Platform 28
4.7 Progress Tracking 28
4.8 Collaborative Learning 28
4.9 Content Management System (CMS) 28
4.10 Role-based Access Control 28
4.11 Mobile Responsiveness 29
5. TECHNOLOGY STACK 30

VI
5.1 Spring 30
5.2 Spring Boot 31
5.3 Spring Framework 32
5.3.1 Spring Architecture 32
5.4 Spring security 35
5.5 Web Technologies 37
5.6 Database 38
5.7 ORM 39
5.8 Tools Used 40
6. SOFTWARE DEVELOPMENT 42
LIFECYCLE
6.1 SDLC Overview 42
6.2 Stages of SDLC 43
6.2.1 Planning 43

6.2.2 Requirement Analysis 43


6.2.3 Designing 43

6.2.4 Implementation 44
44
6.2.5 Testing
44
6.2.6 Deployment in the Market and
Maintenance
45
6.3 SDLC Models
7. DEVELOPMENT METHODOLOGY 46
7.1 Agile Approach 46
7.2 System Modules 50
7.2.1 Work Phase 1 50
7.2.1.1 Blogging Interface 50
7.2.1.2 User 50

7.2.1.3 Admin Dashboard 50

VII
7.2.1.4 Commenting System 50

7.2.1.5 Gamification – Quiz 51


51
7.2.2 Work Phase 2
51
7.2.2.1 Tagging and Search
51
7.2.2.2 Security and Validation 51
7.2.2.3 Learning hub - Material sharing 51
7.2.3 User and Admin management 52

7.3 Input Requirements 52

7.4 Output Requirements 52


53
7.5 Maintenance
53
7.6 System Analysis
7.7 Data Analysis
54
7.7.1 Operational Analysis
54
7.7.2 Economical Analysis 54
7.7.3 System Security 54
7.8 Technologies 55
7.8.1 Front end 55
7.8.2 Back end 55

7.8.3 Database 55

7.9 System Specification 55


55
7.9.1 Software Requirements
56
7.9.2 Hardware Requirements
56
7.9.3 Functional Requirements
56
7.9.4 Non-Functional Requirements 56

8. SYSTEM DESIGN 57
8.1 Administrator Subsystem 57

VIII
8.2 User Subsystem 57
8.3 System Design 58
8.3.1 Frontend Design 58

8.3.2 Controller 58

8.3.3 RESTful API 59

8.3.4 Service 59
59
8.3.5 Repository/DAO (Data Access Object)
59
8.3.6 Entity
8.3.7 Model (DTO - Data Transfer Object) 60
8.4 Use Case Realization
60
9. RESULTS AND DISCUSSION 62
10. CONCLUSION AND FUTURE WORK 72
APPENDIX 1 I
REFERENCES XIII

IX
LIST OF FIGURES

FIGURE NO. TITLE PAGE NO.


2.1 Comparison of different existing blogging platforms 19

3.1 Web Application Architecture 20

3.2 Components of Architecture 22


3.3 User Authentication 23
3.4 Creating a blog post 24
3.5 Commenting system 24
3.6 Pagination 24
3.7 System Architecture of Blogging 25
3.8 Structure of database 26
5.1 Building a Web Application using Spring 30
framework
5.2 Spring - Nestled hierarchy 31
5.3 Features of Spring Framework 32

5.4 Architecture of Spring Framework 35

5.5 Architecture of Spring Security 36


5.6 Connecting a Java project with a database 38

Hibernate ORM 40
5.7
5.8 Working of an IDE 41
Software development lifecycle 42
6.1
SDLC Models 45
6.2
Phases of Agile Model 47
7.1
System Analysis 53
7.2
Login Use case for the Blog System 57
8.1

X
General User Use case for the Blog system 57
8.2
8.3 System Architecture 58
Entity Relation Diagram for Blog System 60
8.4
Managing Blog content 60
8.5

Creating and Editing a Blog post 61


8.6

Flowchart of publishing a Blog 61


8.7

Coding structure of Database 62


9.1
Structure of Blogging application 62
9.2
Structure of Quiz application 63
9.3
Login page 63
9.4
Signup page 64
9.5
Viewing the Blogpost page 64
9.6
Searching and Filtering contents based on Tags 65
9.7
Posting Materials 65
9.8
Quiz Interface 66
9.9
Features of Quiz Interface 66
9.10
Quiz Admin page 67
9.11
Exam page 67
9.12
Quiz Application 67
9.13
Quiz coding structure 67
9.14
Integration of Blog & Quiz 68
9.15

XI
Database of the Application 69
9.16
Home Page 69
9.17
Blog Page 70
9.18
Final Output of the Blogging Application 70
9.19

LIST OF TABLES

TABLE NO. TITLE PAGE NO.

2.1. Comparative analysis of 17


Monolithic and Microservices
approaches
2.2 Features/Functionality of 29
Blogging

XII
LIST OF ABBREVIATIONS

1. HTML: Hyper-Text Markup Language


2. CSS: Cascading Style Sheets
3. JS: JavaScript
4. API: Application Programming Interface
5. SDK – Software Development Kit
6. DAO: Data Access Object
7. CRUD: Create, Read, Update, Delete
8. JPA: Java Persistence API
9. URL: Uniform Resource Locator
10. SSL: Secure Sockets Layer
11. HTTP: HyperText Transfer Protocol
12. HTTPS: HyperText Transfer Protocol Secure
13. UI: User Interface
14. UX: User Experience
15. SQL: Structured Query Language
16. API: Application Programming Interface
17. REST: Representational State Transfer
18. Sprint: A short development cycle in Agile methodology
19. CMS: Content Management System
20. UML - Unified Modeling Language
21. SRS - Software Requirement Specification
22. DDS - Design Document Specification
23. DBMS - Database Management System
24. ORM - Object-Relational Mapping
25. MVC - Model-View-Controller
26. JMS - Java Message Service
27. UAT - User Acceptance Testing

XIII
CHAPTER 1

INTRODUCTION

1.1 OVERVIEW

Blogging has become such a mania that a new blog is being created every
second of every minute of every hour of every day. In the evolving landscape of
education technology, the EDUHUB Project stands as a pioneering venture that
seamlessly integrates the communicative power of a blogging and learning platform.
This project introduces a web-based application that is built on the foundation of the
leveraging technologies such as Java, HTML, CSS, JS, Eclipse, Spring Boot, Spring
Security, PostGre SQL Database, Hibernate ORM, and Postman, providing a secure
and feature-rich environment for both administrators and general users. It enables
users to create accounts, craft blog posts, comment on posts, and search for content
using tags or keywords. This not only fosters self-expression but also promotes
collaboration and critical thinking. The administrator can manage existing blogs,
archives, and tags, ensuring a well-organized and structured platform. General users,
on the other hand, can seamlessly navigate through the home page content, explore
blogs categorized under different archives and tags, and actively participate in the
community through comments. It ensures a scalable, organized, and extensible
structure. The inclusion of Spring Boot simplifies application development by
streamlining dependency selection and installation. The integration of Hibernate
ORM facilitates seamless mapping of Java classes to database information,
enhancing data storage and retrieval capabilities. This innovative approach to
learning through blogging transforms the learners into active creators. This unique
blend nurtures critical thinking, self-expression, and collaboration, fostering a sense
of community within the educational space.

1
1.2 PROBLEM STATEMENT

The existing manual system for managing information on EduHub, a blogging


and learning platform, is plagued by numerous drawbacks. The manual approach
requires the tedious and time-consuming maintenance of records, hindering the
efficient storage and retrieval of information. The lack of systematic order in record-
keeping results in difficulties associating transactions with specific contexts, leading
to inefficient business operations. Data entry and retrieval processes are prone to
unnecessary delays and errors, consuming valuable time.

Moreover, the manual system makes it challenging to identify and rectify


errors during data entry, and once records are entered, updating them becomes a
complex and error-prone task. The need to maintain a vast amount of information
while running the platform exacerbates these issues, making the current system
laborious and inefficient.

1.3 DRAWBACKS OF THE EXISTING SYSTEM

• The existing systems experiences slow page speed, impacting user experience
and satisfaction as they face delays in accessing content.
• Overall system performance is sometimes being suboptimal, affecting
responsiveness and functionality.
• The lack of User Authentication compromises data security and
personalization features.
• Website vulnerabilities that expose it to security threats, unauthorized access,
and malicious activities.

2
• The existing system may lack optimal mobile responsiveness, affecting the
user interface and experience.

1.4 OBJECTIVE

• Foster an environment for collaborative and mutual learning


• Integrate elements of fun and enjoyment into the learning process to make it
a positive and engaging experience for participants.
• Increase motivation for Reading and Writing.
• Establish the project as a hub for knowledge sharing, enabling users to explore
diverse content and contribute to a collective pool of information.

GOAL:

Implementing the EDUHUB project addresses these challenges by


automating and streamlining information management. The proposed system offers
a user-friendly interface, secure authentication, and features like nested comments,
comprehensive search functionality, and responsive design, significantly improving
efficiency and user experience. By implementing these solutions, EduHub aims to
overcome the limitations of the existing manual system.

3
1.5 ADVANTAGES OF THE PROPOSED SYSTEM

• Nested comment system- contributes to a cleaner and more structured layout


thereby enhancing interaction and readability.
• Secure User Authentication with Role - based Access control - protects
sensitive information.
• Comprehensive Search functionality – helps find relevant content quickly
through a sophisticated search system based on tags and keywords.
• Advanced User experience and Responsive design - provides a more intuitive
user experience usability across a variety of devices.

1.6 SIGNIFICANCE OF THE PROJECT

• Fosters a collaborative learning environment where users can benefit from


diverse perspectives and insights.
• Promotes efficient knowledge sharing among administrators and general users
by creating an interface that facilitates the creation and sharing of educational
content, including articles, pictures, and codes.
• With user authentication implemented, EDUHUB ensures secure access to
personalized features and maintains integrity
• Administrative control
• Functions as a dynamic learning platform
• Delves into the theoretical foundations, learning modes, processes, and the
advantages and disadvantages of network collaborative learning.
• Real-life applications - educational settings, professional development,
businesses and various knowledge-sharing contexts.

4
1.7 MOTIVATION AND FUTURE SCOPE

In an era where information is abundant, blogging stands out as a powerful


medium for sharing ideas, expertise, and insights. Despite the evolving digital
landscape, an impressive 77% of internet users continue to regularly read blog posts.
This statistic underscores the enduring relevance of blogs as a means of
communication and knowledge dissemination.

The integration of a blogging platform within the EDUHUB is not just a tool;
it's a catalyst for transformative learning experiences in the realm of technology-
driven education. This not only aligns with contemporary reading habits but also
introduces a social and collaborative dimension to the educational experience.
Motivated by the widespread adoption and versality of Spring Boot in diverse
domains, this project aims to leverage its efficiency and convenience for the
development of a dynamic, collaborative educational platform. Web application
development, microservices architecture, and RESTful API creation aligns
seamlessly with the project's vision and provides a robust and scalable solution

The future of the EDUHUB Project holds promise and challenges, mirroring
the evolving landscape of technology and content consumption. As technology
continues to advance, incorporating elements like voice search, artificial
intelligence, and virtual reality into the platform's features could reshape the way
users interact with educational content. The project could explore opportunities to
integrate adaptive learning mechanisms, ensuring personalized educational journeys
for users. Additionally, staying attuned to evolving blogging trends and
incorporating multimedia elements could further enrich the platform's content
delivery. In conclusion, this project aspires to shape the future of education, making
it not just informative but engaging and participatory.

5
1.8 APPLICATIONS OF BLOGGING

• Educational Institutions & Virtual study groups: To facilitate collaborative


learning among students, educators, and administrators.
• Professional development: To share industry insights, best practices, and stay
updated on the latest trend thus beneficial for continuous learning and skill
enhancement.
• Corporate Knowledge sharing: Employees can contribute articles, case
studies, and expertise, promoting a culture of continuous learning and
collaboration within the organization.
• Opensource communities: Developers and contributors can share code
snippets, solutions to common issues, and collaborate on software
development projects.
• Research collaboration: To share their findings, methodologies, and
collaborate on interdisciplinary projects, working on similar topics.
• Language learning communities: Users can share language resources, practice
conversations, and provide insights into cultural nuances.
• Community-driven Content Creation: To create and curate educational
content collaboratively, particularly useful in regions with limited access to
traditional educational resources, promoting a democratized approach to
knowledge sharing.

6
CHAPTER 2

LITERATURE REVIEW

Many research has been done on Blogging in past. This literature review
explores relevant studies related to blogging, learning platforms, and their impacts
on various aspects such as skill improvement, global awareness, attitudes, marketing
engagement, collaboration, and student satisfaction. The following sources
contribute to the understanding of the current landscape and provide insights into the
potential benefits and challenges associated with blogging in educational contexts.

2.1 BACKGROUND STUDIES

2.1.1 E-Learning Platforms

The foundation of EDUHUB is built upon extensive research in the field of e-


learning platforms. Existing literature highlights the importance of creating user-
friendly and interactive learning environments. Studies emphasize the need for
platforms that accommodate various learning styles, offer multimedia content, and
support collaborative learning. These insights guide the design of EDUHUB to
ensure a seamless and engaging educational experience.

2.1.2 Microservices Architecture

Research in microservices architecture provides the conceptual framework for


the technical structure of EDUHUB. The microservices approach emphasizes the
development of the application as a set of independently deployable services,

7
enabling scalability, maintainability, and flexibility. The decision to adopt a
microservices architecture is informed by studies showcasing its advantages in large-
scale applications, encouraging a modular and agile development process.

2.1.3 Java and Spring Boot Development

The choice of Java and Spring Boot as the primary development stack for
EDUHUB is supported by research highlighting the robustness, reliability, and
extensive community support of these technologies. Studies emphasize the
efficiency of Java in building scalable applications, while Spring Boot simplifies the
development process, allowing for rapid prototyping and seamless integration with
other components. This aligns with the goal of creating a robust and efficient
learning platform.

2.1.4 Database Management with Hibernate and MySQL

Research in database management systems, particularly using Hibernate with


MySQL, contributes to the decision-making process for data storage in EDUHUB.
The literature underscores the importance of relational databases for structured data
storage and Hibernate's role in simplifying database interactions in Java applications.
These technologies are chosen to ensure data integrity, consistency, and efficient
retrieval in the EDUHUB platform.

2.1.5 Web development best practices

The foundational research in web development best practices guides the creation
of EDUHUB's user interface. Studies emphasize the significance of responsive

8
design, intuitive navigation, and visually appealing layouts. Web Development is the
backbone of blogging platforms, providing the technical infrastructure and features
that enable bloggers to create, manage, and share their content effectively. The
application of HTML and CSS aligns with these principles, ensuring EDUHUB
provides a user-friendly and aesthetically pleasing environment for both blogging
and learning activities.

2.2 KEY CONCEPTS

2.2.1 Blogging Interface

The Blogging Interface in EduHub refers to the user interface that allows users
to create, edit, and manage their blog posts. It includes features such as text editing,
multimedia integration, and post customization.

2.2.2 User Profile

The User Profile is a personal space within EduHub where users can manage
their information, track their blogging activity, and showcase their contributions. It
may include details such as bio, profile picture, and a list of published blog posts.

2.2.3 Content Management System (CMS)

The CMS in EduHub is the backend system that facilitates the creation,
modification, and organization of blog content. It includes tools for drafting, editing,
and publishing posts, as well as managing categories and tags.

9
2.2.4 Rich Text Editor

A Rich Text Editor is a feature within the Blogging Interface that enables users
to create and format content with various text styles, fonts, and multimedia elements.
It provides a user-friendly environment for blog post composition.

2.2.5 Multimedia Integration

Multimedia Integration in EduHub allows users to embed images, videos, and


other media elements into their blog posts. This feature enhances the visual appeal
and educational value of the content.

2.2.6 Commenting system

The Commenting System enables users to engage in discussions and provide


feedback on blog posts. It fosters a sense of community and collaboration among
EduHub users.

2.2.7 Responsive design

Responsive Design ensures that the blogging interface of EduHub is


accessible and visually appealing across various devices, including desktops, tablets,
and smartphones.

10
2.2.8 Analytics Dashboard

The Analytics Dashboard provides users with insights into the performance of
their blog posts, including metrics such as views, likes, comments, and user
engagement. It helps bloggers track the impact of their content.

2.2.9. Gamification Elements

Gamification Elements in EduHub add a fun and motivational aspect to the


platform. This may include achievements, badges, or points awarded to users based
on their blogging activities, encouraging continued participation.

2.2.10. Accessibility Features

Accessibility Features ensure that the blogging interface is inclusive and


usable for individuals with diverse abilities. This may involve providing alternative
text for images, keyboard navigation options, and other accommodations.

2.3 RESEARCH PAPERS

2.3.1. Al-Jarf, Reima (2022) - British Journal of Teacher Education and Pedagogy.
"Blogging about Current Global Events in the EFL Writing Classroom: Effects on
Skill Improvement, Global Awareness and Attitudes”

Key findings: Al-Jarf (2022) investigated the effects of blogging about current
global events in the EFL writing classroom. The study focused on skill improvement,
global awareness, and attitudes. The findings contribute to understanding how

11
blogging can positively influence language learning, enhance global awareness, and
shape attitudes among students.

2.3.2. Jie Chi Yang &Nian-Shing Chen (2019) - A journal by Benazir Quadir, an
Information Management Department. “The effects of interaction types on learning
outcomes in a blog-based interactive learning environment”

Key findings: Yang and Chen (2019) explored the effects of different interaction
types on learning outcomes in a blog-based interactive learning environment. This
study provides insights into how the design of interactive elements within a blogging
platform can impact learning outcomes.

2.3.3. Muhammad Sajjad, Umer Zaman (2022)- Journal of Open Innovation:


Technology, Market, and Complexity. "Innovative Perspective of Marketing
Engagement: Enhancing Users’ Loyalty in Social Media through Blogging"

Key findings: Sajjad and Zaman (2022) presented an innovative perspective on


marketing engagement, emphasizing the role of blogging in enhancing users' loyalty
on social media platforms. The study contributes to understanding the marketing
potential of blogging in fostering user loyalty.

2.3.4. Barua, Nivedita. (2023). “Blogging as a tool to enable students to write more
effectively”. Khazar Journal of Humanities and Social Sciences.

12
Key findings: Barua (2023) investigated the use of blogging as a tool to enable
students to write more effectively. This study explores the potential of blogging as
an educational tool for improving writing skills among students.

2.3.5. Obionwu, Victor & Broneske, David & Saake, Gunter. (2023). “Leveraging
Educational Blogging to Assess the Impact of Collaboration on Knowledge
Creation”. International Journal of Information and Education Technology.

Key findings: Obionwu, Broneske, and Saake (2023) leveraged educational


blogging to assess the impact of collaboration on knowledge creation. The study
provides insights into how blogging platforms can facilitate collaborative learning
and knowledge creation in educational settings.

2.3.6. Bachynska, Nadiia. (2022). Educational and Professional Programme “Online


Journalism and Blogging”: Interdisciplinary Content of the Speciality “Information,
Library and Archival Management”. Ukrainian Journal on Library and Information
Science.

Key findings: Bachynska (2022) discussed an educational and professional


program, "Online Journalism and Blogging," highlighting the interdisciplinary
content related to information, library, and archival management. This study
provides insights into the academic integration of blogging in specialized programs.

2.3.7. Hans, Sahil & Maqsad, Shaik & Swami, Aditya & Kumar, Ashish. (2021). “A
Systematic Review of Blogging : Opportunities and Challenges”. International

13
Journal of Scientific Research in Computer Science, Engineering and Information
Technology.

Key findings: Hans, Maqsad, Swami, and Kumar (2021) conducted a systematic
review of blogging, exploring opportunities and challenges. The study provides a
comprehensive overview of the current state of blogging, identifying both
opportunities and challenges in the field.

2.3.8. Khan, Barkat & Wei, Song & Nadir, Ali & Gul, Rabia & Ullah, Shahid &
Mehmood, Shafaqat & Asma, Asma. (2020). “Role of blogging in perceived learning
and satisfaction of students. Journal of Public Affairs”.

Key findings: Khan, Wei, Nadir, Gul, Ullah, Mehmood, and Asma (2020)
investigated the role of blogging in perceived learning and satisfaction among
students. This study contributes to understanding how blogging platforms influence
student learning experiences and satisfaction levels.

2.3.9. Qureshi, Muhammad & Mushtaq, Amir & Ahmed, Danyal & Saleem, Ayesha.
(2018). “Blogging-Future Media and Internet Activism”. International Journal of P2P
Network Trends and Technology.

Key findings: Qureshi, Mushtaq, Ahmed, and Saleem (2018) explored the role of
blogging as a future medium and a tool for internet activism. This study delves into
the potential societal impacts of blogging as a form of digital activism.

14
2.3.10. Inamke, Vinit & Shaikh, Asfahan. (2022). “Blogging And E-learning Platform
With Company Portfolio”. International Journal of Engineering Applied Sciences and
Technology.

Key findings: Inamke and Shaikh (2022) presented a study on a blogging and e-
learning platform with a company portfolio. The research explores the integration of
blogging into e-learning platforms, considering its application in showcasing
company portfolios.

These studies contribute valuable insights into the potential benefits, challenges, and
applications of blogging in enhancing learning experiences, collaboration,
marketing engagement, and societal impact. The synthesis of these findings informs
the development and objectives of EduHub, aligning it with the current trends and
research in the field.

2.4 PREVIOUS APPROACHES

Outline of the two popular architectural patterns are stated below

2.4.1 Monolithic Approach

In a monolithic architecture, all components of the application are tightly integrated


into a single codebase. This approach is simpler to develop and deploy, making it a
good choice for smaller projects.

Pros:

• Simplicity: Easier to develop and test as everything is in one place.

15
• Less Complex Deployment: Deployment is typically straightforward
compared to microservices.

Cons:

• Scalability: Scaling can be challenging as the entire application needs to be


scaled.
• Maintainability: As the project grows, the codebase can become harder to
maintain and understand.
• Limited Technology Stack: Limited flexibility in choosing different
technologies for individual components.

2.4.2 Microservices Approach

In a microservices architecture, the application is divided into smaller,


independent services, each responsible for a specific business capability. These
services communicate through APIs, and each service can be developed and
deployed independently.

Pros:

• Scalability: Easier to scale individual services based on demand.


• Flexibility: Each service can use a different technology stack, allowing
flexibility in technology choices.
• Maintainability: Easier to maintain and update individual services without
affecting the entire system.

16
Cons:

• Complexity: Increased complexity in development, deployment, and


communication between services.
• Operational Overhead: Requires more effort to manage and deploy multiple
services.
• Consistency: Ensuring consistency across services (e.g., data consistency) can
be challenging.

2.5 COMPARATIVE ANALYSIS

The Table 2.1 given below shows the Comparative analysis of Monolithic and
Microservices approaches:

Table 2.1 Comparative analysis of Monolithic and Microservices approaches

CHARACTERISTIC MONOLITHIC MICROSERVICES


1. Architecture Single, tightly integrated Multiple independent
codebase services, each with its
own codebase
2. Scalability Scales by replicating the Scales by deploying and
entire application scaling individual
services
3. Flexibility Limited flexibility in Each service can use a
choosing technologies for different technology
different components stack
4.Development Easier to develop and test Increased complexity in
Simplicity development,

17
deployment, and
communication
5.Deployment Simpler deployment More effort to manage
Simplicity process and deploy multiple
services
6. Maintainability Can become harder to Easier to maintain and
maintain and understand update individual
as the project grows services

7. Resource Utilization Resources are shared Resources can be


among all components allocated independently
for each service
8. Consistency Easier to ensure Ensuring consistency
consistency across (e.g., data consistency)
components can be challenging
9.Scalability Limited granularity as the Fine-grained scalability;
Granularity entire application needs to individual services can
be scaled be scaled independently

10. Team Collaboration Collaboration is Requires coordination


straightforward as among multiple teams
everything is in one place working on different
services
11. Reliability Generally reliable for Reliable for larger,
smaller projects with less complex projects with
complexity diverse functionalities

18
WordPress, established in 2003, is the most popular blogging platform
globally, powering a significant portion of websites. It offers a wide range of themes
and plugins, catering to diverse needs. Blogger, owned by Google, is a user-friendly
platform suitable for beginners but has limited customization options compared to
WordPress. Medium, founded in 2012, focuses on simplicity and a clean reading
experience, making it ideal for writers. Tumblr, acquired by Automattic (WordPress's
parent company), is a microblogging platform with a strong emphasis on social
sharing and multimedia content. Ghost, introduced in 2013, emphasizes minimalism
and speed, targeting users who prioritize content creation over extensive
customization. Wix, a website builder with blogging capabilities, is known for its
drag-and-drop interface and extensive design options. Squarespace, founded in
2003, combines blogging with website building, offering a visually appealing
platform with integrated e-commerce features. Weebly, now owned by Square, is a
user-friendly platform suitable for beginners, offering drag-and-drop functionality
and various templates. The Fig 2.1 below shows the comparative analysis of the
existing blogging platforms

Fig 2.1: Comparison of different existing blogging platforms

19
CHAPTER 3

SYSTEM ARCHITECTURE

3.1 WEB APPLICATION

Blogging as a web development concept involves creating and maintaining a


website or web application where users can publish and interact with blog posts. A
blog typically consists of articles, images, and multimedia content. The development
of a blogging platform requires a robust web application architecture to handle
various components and functionalities. The figure below shows the architecture of
web application

Fig 3.1: Web Application Architecture

Components:

➢ Client-Side:

User Interface (UI): The UI is the client-side component where users interact

20
with the application. It includes elements like buttons, content display etc.,

Frontend Frameworks: Frameworks like React, Angular, or Vue.js can be used to

build dynamic and responsive user interfaces.

➢ Server-Side:

Application Server: Handles the business logic and processes user requests.

Web Server: Manages incoming HTTP requests and serves static assets.

➢ Database:

Database Management System (DBMS): Stores and retrieves data. MySQL,

PostgreSQL are alternatively used as per requirements.

Object-Relational Mapping (ORM): ORM tools facilitate interaction between

the application code and the database, simplifying data manipulation.

➢ Middleware:

Authentication Middleware: Verifies user identities during login.

Routing Middleware: Directs incoming requests to the appropriate endpoints.

21
➢ Application Programming Interface (API):

RESTful API: Defines how different components of the application


communicate. APIs enable data exchange between the frontend and backend.

➢ File system:

It includes HTML files defining page structures, CSS stylesheets controlling


visual presentation, images for visual appeal, and posts stored in a database,
containing textual content, media, and metadata. HTML templates render
dynamic content, CSS ensures a consistent and responsive design, images are
organized within a media folder, and posts are stored in a structured manner,
allowing user interactions through features like comments and likes. The
Fig 3.2 given below shows the Components of Architecture

USER INTERFACE
APPLICATION LAYER
SERVER
DATABASE

Fig 3.2: Components of Architecture

3.2 COMPONENTS IN EDUHUB

➢ User Authentication Module: Manages user logins, registrations, and ensures


secure access to the platform.
➢ Content Management Module: Handles the creation, editing, and deletion of
blog posts and learning materials.

22
➢ Admin Dashboard Interface: An interface for administrators to manage users,
posts, comments, and other platform elements.
➢ Search and Recommendation Engine: Provides users with relevant content
based on their preferences and behaviour.
➢ Commenting Interface: A user-friendly interface for entering and submitting
comments. It stores and retrieves comments associated with each blog post.
➢ Pagination control: Breaks down long lists of content into paginated pages for
easier navigation
➢ Learning materials and social sharing integration: A repository for sharing
educational materials such as images, documents, videos, and presentations.
➢ Gamification: Allows administrators to create quizzes with questions and
answers and assigns scores to users based on their performance in quizzes.

The figures 3.3, 3.4, 3.5 and 3.6 shows User authentication, Blog post, Commenting
system and Pagination respectively.

Fig 3.3: User Authentication

23
Fig 3.4: Creating a blog post

Fig 3.5: Commenting system Fig 3.6: Pagination

24
3.3. BLOGGING INTERFACE ARCHITECTURE

Fig 3.7: System Architecture of Blogging

The architecture of the proposed blogging system is shown in the above Fig 3.7 The

Blogging Interface Architecture involves key components such as the


Blog Author, Blog Reader, Blog Server, and Data Storage. The Blog Author interacts
with the Blogging Interface to create and edit posts, while the Blog Reader accesses
the interface to view and interact with content. The Blog Server manages user
requests, handles business logic, and communicates with the Data Storage, where
blog posts and related data are stored. Database architecture comprises tables for
users, posts, and comments, with relationships facilitating data retrieval and storage.
User authentication ensures secure access, and data indexing optimizes query
performance. This architecture enables seamless interaction between authors and
readers, ensuring efficient content creation, retrieval, and user engagement.

25
3.4. DATABASE ARCHITECTURE

The database ensures a structured and organized storage system for user data,
authors, posts, and comments in a blogging platform, emphasizing data integrity and
efficient query performance.

The user table may include fields like user ID, username, email, passwords,
and any other relevant user details. The author table includes data such as author ID,
author name, description and any other relevant information specific to authors. The
Posts table stores information related to each blog post. The Comments table is
responsible for storing comments made on blog posts.

The Users table may have relationships with the Authors table to distinguish
users who are also authors. The Authors table has relationships with the Posts table
to link authors with their respective posts. The Posts table establishes relationships
with the Comments table to associate comments with specific blog posts. Find the
structure of database in Fig 3.8 below

Fig 3.8: Structure of database

26
CHAPTER 4

FEATURES AND FUNCTIONALITY

4.1. User Registration and Authentication

• Allow users to create accounts with a unique username and password.


• Secure user login using username and password.

4.2. User Profiles

• Enable users to create and customize their profiles.


• Implement validation to ensure data integrity and security.

4.3. Content Creation and Management

• Provide a user-friendly interface for creating and editing blog posts.


• Include text formatting options, image embedding, and other multimedia
integration.
• Allow users to categorize their blog posts into topics or categories.
• Implement tagging to enhance content discoverability.

4.4. Interactivity and Engagement

• Include a comments section for users to leave feedback and engage in


discussions.
• Implement moderation features to manage and filter comments.

27
4.5. Search and Discovery

Implement a robust search feature to help users find relevant blog posts.

4.6. Learning Platform

Allow learners to create and publish posts, include options for adding
multimedia content, quizzes, and assignments.

4.7. Progress Tracking

Provide learners with a dashboard to track their progress in courses.

Include completion percentages, badges, and upcoming assignments.

4.8. Collaborative Learning

Provide tools for group communication and file sharing and implement peer
review mechanisms for assignments and projects.

4.9. Content Management System (CMS)

Provide an intuitive interface for educators to create and edit courses, include options
for adding and organizing course modules.

4.10. Role-based Access Control

Define user roles (instructors, administrators, learners) with specific permissions,


Control access to various CMS features based on roles.

28
4.11. Mobile Responsiveness

• Ensure that the blogging application is accessible and user-friendly on


various devices, including smartphones and tablets.

The Table 4.1 below shows the Features and Functionality of the Project

Table 4.1 Features/Functionality of Blogging

Feature/Functionality Description
Blogging Interface User-friendly interface for creating, editing, and
managing blog posts.
Commenting System Allows users to comment on blog posts, fostering
engagement and discussions.
Tagging and Search Enables tagging of posts for categorization and
implements a search functionality for easy content
discovery.
Security and Validation Implements robust security measures and
validation checks to ensure data integrity and user
authentication.
Admin Dashboard Provides administrators with a centralized
dashboard for managing users, posts, and overall
site settings.
Pagination Enhances user experience by implementing
pagination for large sets of blog posts.
Learning Hub - Social Facilitates the sharing of educational materials,
Sharing such as images, documents, and videos, within the
learning hub.
Gamification - Quiz Introduces gamification through quizzes,
encouraging user participation and knowledge
retention.
Materials Sharing Allows users to share educational materials,
contributing to collaborative learning.

29
CHAPTER 5

TECHNOLOGY STACK

5.1 SPRING

➢ The Spring Framework is a comprehensive framework for Java development


that provides infrastructure support, ensuring easier configuration and
integration.
➢ Acts as the backbone of the project, handling aspects like dependency
injection, inversion of control, and providing a modular and scalable
architecture.

Building a Web Application using Spring framework involves the following


layers as shown in Fig 5.1

Fig 5.1: Building a Web Application using Spring framework

30
➢ Spring is considered to be a secure, low-cost and flexible framework that
improves coding efficiency and reduces overall application developmenttime
through efficient use of system resources. Spring removes tedious
configuration work so that developers can focus on writing business logic.

5.2 SPRING BOOT

➢ A part of the Spring framework, Spring Boot simplifies the process of building
production-ready applications by providing default configurations and
conventions.
➢ Spring makes building web applications fast and hassle-free, therefore we get
a modern web programming model that streamlines the development of
server-side HTML applications, REST APIs, and bidirectional, event-based
systems by reducing boilerplate code, enabling rapid development, and easing
the deployment of the blogging application. Below is the nested hierarchy of
Spring as in Fig 5.2

Fig 5.2: Spring - Nestled hierarchy

31
5.3 SPRING FRAMEWORK

➢ A comprehensive framework for enterprise Java development that covers


various modules like Spring Core, Spring MVC, Spring Data, and more.
➢ Provides a modular and extensible structure for building the application,
covering various aspects like data access, web development, and security.

The features of spring framework is represented in the Fig 5.3 below

Fig 5.3: Features of Spring Framework

5.3.1. SPRING ARCHITECTURE

➢ The architectural design patterns and components used within the Spring
Framework are as follows:

• Core Container

Beans: Fundamental building blocks, managed by the Spring IoC container.

Core: Core functionality, including the IoC container.

32
• Data Access Layer

JDBC: Simplifies database operations using JDBC.

ORM (Object-Relational Mapping): Integrates with popular ORM frameworks like


Hibernate.

• AOP (Aspect-Oriented Programming)

Aspect: Modularization of cross-cutting concerns like logging and security.

Advice, Joinpoint, Pointcut: Key AOP concepts.

• Messaging

JMS (Java Message Service): Supports messaging between distributed components.

Spring Messaging: Facilitates loosely coupled communication.

• Transaction Management

Declarative: Simplifies transaction handling using annotations or XML


configuration.

Programmatic: Allows manual control of transactions.

• Model-View-Controller (MVC)

DispatcherServlet: Front controller managing web requests.

33
View Resolver: Resolves views for rendering.

• Security

Authentication and Authorization: Provides robust security features.

Filters and Interceptors: Enhances security through request/response filtering.

• Testing

Spring Test: Simplifies unit and integration testing.

Mock Objects: Supports mock object creation for testing.

• Spring Boot

Embedded Servers: Simplifies deployment with embedded containers.

Auto-Configuration: Reduces manual configuration efforts.

Spring Boot Starters: Pre-configured templates for various use cases.

• Integration

JMS, JCA, JMX: Integrates with enterprise technologies.

Spring Integration: Supports messaging-based integration patterns.

34
Fig 5.4: Architecture of Spring Framework

➢ As shown in this Fig 5.4, the architecture guides the overall structure of the
blogging application, ensuring a scalable and maintainable codebase. It
includes concepts like MVC (Model-View-Controller) for handling user
interface components.

5.4 SPRING SECURITY

➢ A module of the Spring Framework that provides comprehensive security


services for Java EE-based enterprise software applications.
➢ Ensures secure authentication and authorization mechanisms for the blogging
platform, protecting user data and sensitive information.

The architecture of Spring security is shown in the Fig 5.5

35
Fig 5.5: Architecture of Spring Security

➢ Spring Security architecture fortifies a blogging interface by seamlessly


managing user authentication and authorization. It facilitates role-based
access control, secure password encoding, and customizable security
configurations for URLs and endpoints. With support for token-based
authentication and integration with Spring MVC, it ensures a robust security
layer throughout the application. Features like user registration, account
management, and audit trails enhance overall security. By leveraging Spring
Security, developers can confidently create a secure and finely controlled
environment for bloggers, safeguarding user data and regulating access to
blogging functionalities.

36
5.5 WEB TECHNOLOGIES

Web technologies play a pivotal role in creating a blogging platform,


providing a dynamic and interactive user experience. Java frameworks like Spring
Boot, are gaining popularity. HTML is used for structuring the content, CSS for
styling, and JavaScript for adding interactivity to the platform. Java, often employed
on the server-side, can manage backend operations, such as user authentication,
database interactions, and handling business logic. Together, they handle the user
interface and user experience, ensuring an aesthetically pleasing and interactive
blogging platform.

Versatile Technologies used for the project are:

➢ Java: A general-purpose, high-level programming language applicable to


diverse applications such as web development
➢ HTML (HyperText Markup Language): A markup language used to create
the structure of web pages.
➢ CSS (Cascading Style Sheets): A stylesheet language employed for
designing the presentation of HTML documents.
➢ JavaScript (JS): A programming language that enhances the interactivity of
web pages.
➢ Thymeleaf: A modern server-side Java template engine for web and
standalone environments.

37
5.6 DATABASE

A database is a structured collection of data that is organized and accessible.


It stores and manages the blog data, including user information, blog posts, and
comments, ensuring data integrity and reliability. The Fig 5.6 below shows howany
Java project is connected with a database.

Fig 5.6: Connecting a Java project with a database

➢ Data Stored

- User Information: Username, email, password.

- Blog Posts: Content, author, timestamp, and associated metadata.

- Comments: Comment text, author, timestamp.

38
➢ Working

- Structured Storage: Data is organized in tables with relationships, ensuring


efficient retrieval.

- PostgreSQL: An open-source relational database management system.

- MySQL: Popular open-source relational database management system.

- MySQL, PostgreSQL are used alternatively for configuration.

- Resource usage is optimized by managing a pool of database connections.

- A framework - Hibernate is used to map database entities to application objects.

5.7 ORM (Object-Relational Mapping)

➢ ORM is a programming technique that allows the seamless integration of


object-oriented programming languages with relational databases.
➢ ORM frameworks (Hibernate) map Java objects to database tables,
simplifying database interactions.
➢ Entities such as User, BlogPost, and Comment are represented as Java objects,
making it easier to work with them in the application code.
➢ Hibernate simplifies data persistence by providing an abstraction layer over
the database. This can be beneficial in a blogging platform where you need to
store and retrieve a large amount of content and user data efficiently.

The architecture of Hibernate ORM is shown in the Fig 5.7

39
Fig 5.7: Hibernate ORM

➢ ORM eliminates the need for direct SQL queries by providing a set of APIs
for CRUD (Create, Read, Update, Delete) operations.
➢ Relationships between entities are managed in Java code rather than complex
SQL joins, enhancing code readability.
➢ Changes made to Java objects are automatically synchronized with the
database, maintaining consistency.

5.8 TOOLS USED

➢ Eclipse: Integrated Development Environment (IDE) for Java used for coding,
debugging, and deploying components of the blogging platform.
➢ MySQL: Popular open-source relational database management system that
stores and manages structured data for the blogging platform.
➢ PostgreSQL: Open-source relational database management system that
provides a robust foundation for storing and retrieving data in the blogging
platform project.

40
➢ PgAdmin: Open-source administration and management tool for PostgreSQL.
It facilitates database administration, including schema design and query
execution.
➢ DBeaver: Universal database tool supporting various databases, including
MySQL and PostgreSQL. It offers a visual interface for database design and
management.
➢ Postman: API development and testing tool that tests and validates API
endpoints, ensuring seamless communication between frontend and backend
components.

These tools collectively streamline the development, deployment, and testing


processes of the blogging platform project. The working of an IDE is represented in
the Fig 5.8 for analyzing

Fig 5.8: Working of an IDE

41
CHAPTER 6

SOFTWARE DEVELOPMENT LIFECYCLE

6.1 SDLC OVERVIEW

Software Development Life Cycle (SDLC) is a process used by the software


industry to design, develop and test software’s. It is a framework, defining tasks
performed at each step in the software development process. The SDLC aims to
produce a high-quality software that meets or exceeds customer expectations,
reaches completion within times and cost estimates.

It consists of a detailed plan describing how to develop, maintain, replace


and alter or enhance specific software. The following figure is a graphical
representation of the various stages of a typical SDLC.

The Software development lifecycle consists of 6 main phases as


represented in the Fig 6.1 below

Fig 6.1: Software development lifecycle

42
6.2 STAGES OF SDLC
6.2.1 Planning
Initial phase where the project team establishes a roadmap for the entire
software development process. This phase involves defining the scope,
objectives, understanding project requirements, conducting feasibility studies,
assessing risks, defining quality standards, establishing the project approach,
documenting the plan, and allocating time and resources.

6.2.2 Requirement Analysis

Requirement analysis is a crucial and foundational stage in SDLC. Senior


team members collaborate with inputs from customers, the sales department,
market surveys, and industry domain experts. This information is used to plan the
project approach and conduct a feasibility study in economical, operational, and
technical areas. The technical feasibility study defines various approaches to
implement the project successfully with minimal risks.

It is necessary to define and document product requirements, obtaining


approval from customers or market analysts. This is accomplished through a
Software Requirement Specification (SRS) document, encompassing all
requirements for design and development throughout the project life cycle.

6.2.3 Designing

The SRS serves as a reference for product architects to devise the best
architecture. Multiple design approaches are proposed based on SRS,
documented in a Design Document Specification (DDS). Stakeholders review the

43
DDS considering parameters such as risk assessment, product robustness, design
modularity, budget, and time constraints. The best design approach is then
selected.

The chosen design approach clearly outlines all architectural modules,


communication, and data flow representations with external and third-party
modules (if any). The internal design of all modules is detailed in the DDS.

6.2.4 Implementation
In this stage, actual development begins, and the product is built. The
programming code is generated according to the DDS. If the design is detailed
and organized, code generation occurs with minimal hassle. Developers adhere to
coding guidelines, and programming tools like compilers, interpreters, and
debuggers are utilized. Different high-level programming languages (e.g., C,
C++, Pascal, Java, and PHP) are chosen based on the type of software being
developed.

6.2.5 Testing
While testing activities are integrated into modern SDLC models, this
stage specifically focuses on testing the product. Product defects are reported,
tracked, fixed, and retested until the product meets the quality standards outlined
in the SRS.

6.2.6 Deployment in the Market and Maintenance

Once the product is tested and ready for deployment, it is formally


released into the market. Deployment may occur in stages, following the

44
organization's business strategy. The product might be initially released in a
limited segment and tested in a real business environment (User Acceptance
Testing - UAT). Based on feedback, the product may be released as-is or with
suggested enhancements in the targeted market segment. Post-release,
maintenance is performed for the existing customer base.

6.3 SDLC MODELS

SDLC models are frameworks that guide the development process,


providing a structured approach to software development. Each model represents
a set of steps or phases to be followed in a particular order to deliver a high-
quality software product. Different SDLC models are chosen based on project
requirements, resources, and organizational goals. Some common SDLC models
are as follows represented in Fig 6.2

* Waterfall Model * V-Model (Verification and Validation Model)


* Agile Model * Incremental Model

* Iterative Model * Big Bang Model


* Spiral Model

Fig 6.2: SDLC Models

45
CHAPTER 7
DEVELOPMENT METHODOLOGY

System development methodology is a technique that is used to show how the


proposed system will be developed. In this case, the methodology used will be a
SDLC. The different phases are agile model are shown in the Fig 7.1

7.1 AGILE APPROACH

➢ Agile is an iterative and incremental model that emphasizes flexibility,


collaboration, and customer feedback.
➢ It is flexible to accommodate changes, frequent deliveries, and customer
involvement throughout the process.
➢ Requires active customer participation, may be challenging for large and
complex projects.

Phases:
• Iterative cycles (Sprints)
• Planning
• Requirements analysis
• Design
• Implementation
• Testing
• Deployment
• Continuous feedback and improvement

46
Fig 7.1: Phases of Agile Model

1. Planning:

Planning is an iterative and collaborative process that involves creating a


prioritized backlog of features. This backlog is flexible and can be adjusted based
on feedback and changing requirements.

Backlog Creation: The development team, along with stakeholders, collaboratively


creates a backlog of features, user stories, and tasks.

Sprint Planning: Work is organized into short development cycles called sprints.
The team plans the work to be done during each sprint, focusing on delivering the
highest-priority features first.

2. Analysis:
Agile emphasizes continuous and collaborative analysis throughout the
development process. This phase involves refining requirements and breaking
them down into smaller, manageable user stories.
47
User Stories: Requirements are captured in the form of user stories, concise
descriptions from an end-user perspective.

Refinement: Regular refinement sessions involve reviewing and clarifying user


stories, ensuring a shared understanding among the team.

3. Design:

Agile design focuses on creating just enough structure to support development.


Design activities occur concurrently with development and are adjusted as needed.

Responsive Design: The user interface is designed to be responsive, ensuring a


consistent and enjoyable experience across various devices.

Incremental Design: Design work is done incrementally as features are developed,


allowing for quick adaptations to changing requirements.

4. Implementation:
Agile implementation involves iterative development, with the emphasis on
delivering working software in short cycles. Development occurs in sprints, with
a focus on collaboration and adaptability.

Iterative Development: Features are implemented in short iterations, allowing for


continuous integration and testing.

48
Collaboration: Developers and stakeholders collaborate regularly to discuss
progress, challenges, and potential adjustments to the project scope.

5. Testing & Integration:

Testing in Agile is continuous and integrated throughout the development process.


Each sprint includes testing activities to ensure the quality of the delivered features.

Continuous Testing: Automated testing is integrated into the development process


to catch issues early.

Integration Testing: Features are integrated and tested together within each sprint
to identify and address any issues promptly.

6. Maintenance:
In Agile, maintenance is an ongoing process that includes bug fixing,
improvements, and adapting to changing requirements.

Bug Fixing: Issues identified during testing or after deployment are addressed
promptly in subsequent sprints.

Continuous Improvement: Retrospectives at the end of each sprint provide a


platform for the team to reflect on the process and identify opportunities for
improvement.

49
a. SYSTEM MODULES
7.2.1 WORK PHASE 1

7.2.1.1 Blogging Interface


➢ The core module allowing users to create, edit, and manage blog posts.
➢ Media integration for images and other multimedia.

7.2.1.2 User

➢ Manages user-related functionalities, including registration, authentication,


and profile management.
➢ User registration and login.
➢ User profile management.
➢ Social media integration.

7.2.1.3 Admin Dashboard


➢ A centralized control panel for administrators to manage and monitor the
blogging platform.
➢ Content moderation and approval.
➢ User management and access control.

7.2.1.4 Commenting System


➢ Enables users to interact through comments on blog posts.
➢ Threaded comments for organized discussions.

50
7.2.1.5 Gamification – Quiz
➢ Introduces gamification elements through quizzes to enhance user
engagement.
➢ Quiz creation and management.
➢ User participation tracking.
➢ Leaderboards and rewards.

7.2.2 WORK PHASE 2

7.2.2.1 Tagging and Search

➢ Enhances content discoverability through tagging and a robust search


system.
➢ Related content suggestions.

7.2.2.2 Security and Validation


➢ Ensures the security and integrity of user data and interactions.
➢ Secure user authentication.
➢ Input validation

7.2.2.3 Learning Hub - Material Sharing

➢ Facilitates the sharing of educational materials like images, documents,


presentations, and videos.
➢ Content categorization for easy navigation.

51
7.2.3 USER AND ADMIN MANAGEMENT
• User can sign up.
• User can login
• User can add information,
• User can upload and delete blog posts
• User can add comments
• Admin can block user id
• Admin can resume user id
• Admin can see all pages
• Admin can maintain all records of user
• Admin can maintain all site
• Admin can access and process all requests
• Admin can delete/update/select user.

b. INPUT REQUIREMENTS
• User Information
• Login information
• Comment information

c. OUTPUT REQUIREMENTS
• Blog Information
• Assigned information of users
• Categories information

52
d. MAINTENANCE
• Manage Blogs
• Manage Blogs Categories
• Manage Recent posts
• Manage users
• Manage images
• Manage Comments

e. SYSTEM ANALYSIS
This phase involves understanding the objectives, user needs, problem and research
methods, functionalities, and constraints of the blogging application. The essentials
of system analysis is represented in the Fig 7.2

Fig 7.2: System Analysis

53
f. DATAANALYSIS
The goal is to assess the feasibility of transitioning from manual greetings to an
automatic system.

7.7.1 OPERATIONAL ANALYSIS


➢ Ensure the new system aligns with operational requirements.
➢ Assess potential barriers to implementation.
➢ Computerization aims for accuracy, efficiency, and time-saving.
➢ Increased workload due to maintaining a database of admins and customers.
➢ Computerized systems reduce errors, provide backup data, and enhance
security through individual logins.

7.7.2 ECONOMICAL ANALYSIS

➢ Evaluate costs associated with system development and operation.


➢ Differentiate between development and operating costs.

7.7.3 SYSTEM SECURITY


➢ Emphasize the importance of system security.
➢ Implement measures to prevent unauthorized access.
➢ Ensure data integrity and protection against hacking.
➢ Password login system for authorized users.

54
g. TECHNOLOGIES
7.8.1 FRONT END
• HTML
• CSS
• JS

7.8.2 BACK END


• JAVA
• Concepts of JSP
• SERVLETS
• Springboot

7.8.3 DATABASE
MySQL

h. SYSTEM SPECIFICATION
7.9.1 Software Requirements
• JDK (Java SE Development Kit): Version 7
• Web Server: Apache 2.4.9x
• Web Scripting Language: PHP 5.5x
• Database: MySQL 5.6x
• Environment: NetBeans IDE 8.0.2x
• Supported Operating Systems:
• Windows 2000/XP/2003/Vista
• Windows 7/Windows 8

55
• XP64/Vista64/Windows 7 64
• Integrated Development Environment (IDE): Visual Studio Code, Eclipse

7.9.2 Hardware Requirements


• Processor: Intel Core i5 or equivalent
• Memory: 2 GB (32-bit), 4 GB (64-bit)
• Disk space: 1.5 GB of free disk space
• Screen resolution is 1024x768 pixels

7.9.3 Functional Requirements


• User Registration and Authentication
• Content Creation
• Commenting System
• Search and Navigation
• User Profiles
• Categories and Tags

7.9.4 Non-Functional Requirements


• Performance
• Scalability
• Security
• Usability
• Reliability
• Backup and Recovery

56
CHAPTER 8
SYSTEM DESIGN

8.1 ADMINISTRATOR SUBSYSTEM


The use case diagram for the Administrator subsystem is given in the Fig 8.1

Fig 8.1: Login Use case for the Blog System

8.2 USER SUBSYSTEM


The use case diagram for the General user subsystem is given in the Fig 8.2

Fig 8.2: General User Use case for the Blog system

57
8.3 SYSTEM DESIGN
System design is a pivotal phase in software development where the
architecture of the blogging application is defined. The following components play
crucial roles as represented in the Fig 8.3

Fig 8.3: System Architecture

8.3.1 Frontend Design


The frontend layer serves as the user interface, responsible for presenting
information to users in an intuitive and visually appealing manner. This layer is
designed to enhance user experience and ensure seamless interaction with the
blogging application. Leveraging HTML, CSS, and JavaScript, the frontend is
crafted to display content and enable user interactions.

8.3.2 Controller
Controllers act as intermediaries between the user interface and the backend
services. In a Spring Boot project, controllers receive HTTP requests, process them,
and invoke the corresponding service methods.

58
8.3.3 RESTful API
The application adheres to the REST architectural principle, allowing clients
(browsers) and servers to interact seamlessly without prior knowledge. This design
choice enables complex interactions between the client and server, with the key
constraint being an agreement on the media used, typically HTML for web
applications. The RESTful API ensures that clients can interact with the service
without detailed knowledge of its internal structure. The server provides the
necessary information for clients to effectively engage with the application.

8.3.4 Service
Services contain the application's business logic, handling operations
requested by controllers. A PostService class, for instance, could manage the
creation, retrieval, and modification of blog posts. Services provide a modular and
reusable way to organize application logic.

8.3.5 Repository/DAO (Data Access Object)


Repositories facilitate data access and manipulation by abstracting
interactions with the database. In the Spring Data context, repositories extend
JpaRepository, allowing seamless CRUD (Create, Read, Update, Delete) operations
on entities.

8.3.6 Entity
Entities represent the core data objects such as User, Post, Comment, and
Category. These entities define the structure of our data and establish relationships
between them.

59
8.3.7 Model (DTO - Data Transfer Object)
The model layer encapsulates the business logic and operations. For instance,
a UserModel class may handle user-related functionalities, while a PostModel class
manages blog post operations. Models define how entities interact and enforce the
application's business rules.

8.4 USE CASE REALIZATION


The Entity–Relation (ER) diagram for entity classes of Blogging is shown below in
the Fig 8.4

Fig 8.4: Entity Relation Diagram for Blog System

The below structure diagram contains a series of operation towards the blog
content.

Fig 8.5: Managing Blog content

60
Creating and Editing a Blog post is shown in the Fig 8.6

Fig 8.6: Creating and Editing a Blog post

The steps to publish a blog is given in the Figure 8.7

Fig 8.7: Flowchart of publishing a Blog

61
CHAPTER 9
RESULTS AND DISCUSSION

Coding structure of Database is given in the Fig 9.1 below

Fig 9.1: Coding structure of Database

Fig 9.2 represents the Structure of Blogging application

Fig 9.2: Structure of Blogging application

62
Fig 9.3 represents the Structure of Quiz application

Fig 9.3: Structure of Quiz application

Fig 9.4 represents the Structure of the Login page of Blogging Interface

Fig 9.4: Login page

63
Fig 9.5 represents the Structure of the Sign-up page of Blogging Interface

Fig 9.5: Signup page

Fig 9.6 represents how the View of a blog post page looks like

Fig 9.6: Viewing the Blogpost page

64
Our blogging interface allows to search contents based on tags and keywords. It is
shown in the Fig 9.7

Fig 9.7: Searching and Filtering contents based on Tags

Users and Admin can also share materials for collaborative knowledge sharing. It is
shown in the Fig 9.8

Fig 9.8: Posting Materials

65
We have also added a quiz functionality for the learners to test their knowledge and
skills. The interface of the Quiz application, its features, the Admin page, Exam page
and the Coding structure are all represented in the below Fig 9.9 – 9.14

Fig 9.9: Quiz Interface

Fig 9.10: Features of EduHub

66
Fig 9.11: Quiz Admin page

Fig 9.12: Exam page Fig 9.13: Quiz Application

Fig 9.14: Quiz coding structure

67
Fig 9.15: Integration of Blog & Quiz

The above Figure 9.15 illustrates the Integration of Blog and Quiz Interface. The
above Figure illustrates the integration of the Blogging and Quiz interfaces in
EduHub. This integration encompasses a comprehensive set of features designed to
enhance the learning experience and promote interactive engagement. The platform
includes functionalities such as Search, Tags, Commenting, Editing and Managing
blog posts, Study materials, attain exams, quizzes and courses. This integrated
interface aims to revolutionize the learning experience by combining the benefits of
blogging with interactive quizzes, creating a dynamic and engaging
platform for learners.

68
Fig 9.16:Database of the Application

The above Figure 9.16 shows the database of the Blogging and Quiz application ,it
contains 7 tables which stores the unique data from the table.

Fig 9.17:Home Page

The above Figure 9.17 shows the Home Page of the EduHub which contains both
Blog and Quiz Application interfaces.
69
Fig 9.18:Blog Page

The above Figure 9.18 shows the Blog Page of the EduHub which contains Search,
Tags, Commenting, Editing and Managing blog posts .
From Code to Interface: The Ultimate output of the Blogging Interface is shown in
the Figure 9.19

Fig 9.19: Final Output of the EduHub

70
In the culmination of our blogging project, the experimental results and
analysis provide valuable insights into the usability, and functionality of the
developed platform. The results affirm the successful implementation of core
features, such as the user-friendly blogging interface, robust commenting system,
and engaging gamification elements like quizzes. The RESTful API, service layer,
and DAO have demonstrated seamless interactions, ensuring data integrity and
efficient database management. The frontend design enhances the user experience,
aligning with modern web standards. Furthermore, the adoption of Agile
methodologies has facilitated adaptability to evolving requirements, allowing for
iterative improvements. This project also provides a roadmap for future
enhancements and optimizations, solidifying the blogging platform's standing as a
dynamic and user-centric application.

71
CHAPTER 10
CONCLUSION AND FUTURE WORK

10.1 CONCLUSION

In conclusion, the completion of the blogging and learning platform project


marks a significant milestone, showcasing the successful integration of various
modules to create a dynamic and user-friendly application.
The blogging interface, commenting system, and gamification elements have
been implemented effectively, providing users with an engaging and collaborative
environment. The RESTful API, service layer, and DAO have demonstrated robust
functionality, ensuring efficient data management and interactions. The frontend
design enhances user experience, aligning with modern web standards. The project's
adherence to Agile methodologies has allowed for iterative improvements, ensuring
adaptability to evolving requirements. As we reflect on the experimental results and
analysis, the successful implementation of core features lays the groundwork for
future enhancements and optimizations.
Robust security measures will be implemented to safeguard user data. The
platform prioritizes accessibility and inclusivity, offering a responsive design that
caters to users across various devices. The emphasis on a collaborative learning
environment is evident in the seamless integration of commenting system,
collaborative writing features, and gamification elements, fostering a sense of
community among users. Efforts will be directed towards community building,
encouraging user engagement, and fostering a vibrant online community. Regular
updates and communication channels will be established to keep users informed and
involved in the platform's evolution.
72
10.2 FUTURE WORK

Looking ahead, to further elevate the blogging and learning platform, In


addition to Work Phase 2, we envision implementing features such as user
participation tracking, leaderboards, and rewards, fostering a sense of community
and healthy competition among users. Additionally, the integration of advanced
tagging and search functionalities will enhance content discoverability, enabling
users to accessrelevant information more efficiently. Security and validation
mechanisms will be further fortified to ensure the confidentiality and integrity of
user data, building trustwithin the community.

Furthermore, in our commitment to community-driven education, future


work will focus on expanding the learning hub. This will include the sharing of
educational materials such as images, documents, presentations, and videos.
Contentcategorization will be improved to facilitate easy navigation, ensuring
users can access educational resources seamlessly. By empowering users to
contribute and share their knowledge, the platform will evolve into a
comprehensive learning ecosystem that caters to diverse educational needs.

In conclusion, the future work outlined above aims to transform the


bloggingand learning platform into a more inclusive, interactive, and community-
centric space. By incorporating these enhancements, we aspire to create a platform
that notonly facilitates knowledge sharing but also nurtures a vibrant community
of learnersand contributors.

73
APPENDIX 1
SOURCE CODE

POST CONTROLLER CLASS


package com.project.blog.controller;

import com.github.pagehelper.PageInfo;

import com.project.blog.annotation.ValidatePost;

import com.project.blog.pojo.Post;

import com.project.blog.service.PostService;

import org.springframework.beans.factory.annotation.Autowired;

import org.springframework.http.ResponseEntity;

import org.springframework.web.bind.annotation.*;

import org.springframework.web.multipart.MultipartFile;

@RestController

@RequestMapping("/api/post")

public class PostController {

private final PostService postService;

@Autowired

public PostController(PostService postService) {

I
this.postService = postService;

@GetMapping

public ResponseEntity<PageInfo<Post>> getPosts(

@RequestParam(defaultValue = "") String search,

@RequestParam(defaultValue = "0") int tagId,

@RequestParam(defaultValue = "1") int page,

@RequestParam(defaultValue = "4") int pageSize) {

PageInfo<Post> posts = postService.getPosts(search, tagId, page, pageSize);

return ResponseEntity.ok(posts);

@ValidatePost(data = false)

@GetMapping("/{id}")

public ResponseEntity<Post> getPost(@PathVariable int id) {

return ResponseEntity.ok(postService.getPostById(id));

/**

* insert post to database

II
* @param title post title

* @param content post content

* @param image post image

* @param tags post tags

* @return success: http 201

* request data: http 400

*/

@ValidatePost(id = false)

@PostMapping

public ResponseEntity<?> insertPost(

@RequestParam("title") String title,

@RequestParam("content") String content,

@RequestParam("image") MultipartFile image,

@RequestParam("tags") String tags

){

if (postService.insertPost(title, content, image, tags)) {

// insert success

return ResponseEntity.created(null).build();

// insert failed

return ResponseEntity.internalServerError().build();

}
III
/**

* update post to database

* @param title post title

* @param content post content

* @param image post image

* @param tags post tags

* @return success: http 204

* request data invalid: http 400

* post not found: http 404

*/

@ValidatePost

@PutMapping("/{id}")

public ResponseEntity<?> updatePost(


@PathVariable int id,
@RequestParam("title") String title,
@RequestParam("content") String content,
@RequestParam("image") MultipartFile image,
@RequestParam("tags") String tags) {
if (postService.updatePost(id, title, content, image, tags)) {
// update success
return ResponseEntity.noContent().build();
}
IV
// update failed
return ResponseEntity.internalServerError().build();
}

@ValidatePost(data = false)
@DeleteMapping("/{id}")
public ResponseEntity<?> deletePost(@PathVariable int id) {
if (postService.deletePost(id)) {
// delete success
return ResponseEntity.noContent().build();
} else {
// delete failed
return ResponseEntity.internalServerError().build();
}
}
}

VALIDATE POST

package com.project.blog.annotation;

import java.lang.annotation.ElementType;

import java.lang.annotation.Retention;

import java.lang.annotation.RetentionPolicy;

import java.lang.annotation.Target;

V
@Retention(RetentionPolicy.RUNTIME)

@Target(ElementType.METHOD)

public @interface ValidatePost {

boolean id() default true;

boolean data() default true;

SECURITY CONFIGURATION

package com.project.blog.config;

import com.project.blog.filter.CookieCsrfFilter;

import com.project.blog.filter.SpaWebFilter;

import com.project.blog.handler.CustomAuthenticationFailureHandler;

import com.project.blog.service.CustomUserDetailsService;

import org.springframework.beans.factory.annotation.Autowired;

import org.springframework.context.annotation.Bean;

import org.springframework.context.annotation.Configuration;

import org.springframework.http.HttpMethod;

import
org.springframework.security.config.annotation.web.builders.HttpSecurity;

VI
import
org.springframework.security.config.annotation.web.configuration.EnableWebS
ecurity;

import org.springframework.security.web.SecurityFilterChain;

import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;

import
org.springframework.security.web.authentication.logout.HeaderWriterLogoutHa
ndler;

import
org.springframework.security.web.authentication.www.BasicAuthenticationFilte
r;

import org.springframework.security.web.csrf.CookieCsrfTokenRepository;

import
org.springframework.security.web.csrf.CsrfTokenRequestAttributeHandler;

import
org.springframework.security.web.header.writers.ClearSiteDataHeaderWriter;

import org.springframework.web.servlet.config.annotation.CorsRegistry;

import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;

import static org.springframework.security.config.Customizer.withDefaults;

import static
org.springframework.security.web.header.writers.ClearSiteDataHeaderWriter.Di
rective.CACHE;

VII
import static
org.springframework.security.web.header.writers.ClearSiteDataHeaderWriter.Di
rective.COOKIES;

@Configuration

@EnableWebSecurity

public class SecurityConfig {

private final CustomUserDetailsService customUserDetailsService;

@Autowired

public SecurityConfig(CustomUserDetailsService customUserDetailsService)


{

this.customUserDetailsService = customUserDetailsService;

@Bean

public SecurityFilterChain filterChain(HttpSecurity http) throws Exception {

http

.cors(withDefaults())

.authorizeHttpRequests((authorize) -> authorize

.requestMatchers("/", "/index.html", "/static/**",

VIII
"/.ico", "/.json", "/api/tag", "/api/session",

"/api/user", "/api/login", "/api/signup",


"/api/files/**").permitAll()

.requestMatchers(HttpMethod.GET, "/api/post/**").permitAll()

.anyRequest().authenticated()

.csrf((csrf) -> csrf

.csrfTokenRepository(CookieCsrfTokenRepository.withHttpOnlyFalse())

.csrfTokenRequestHandler(new
CsrfTokenRequestAttributeHandler())

.addFilterAfter(new CookieCsrfFilter(),
BasicAuthenticationFilter.class)

.addFilterAfter(new SpaWebFilter(), BasicAuthenticationFilter.class)

.formLogin(formLogin -> formLogin

.loginPage("/login")

.loginProcessingUrl("/api/login")

.failureHandler(new CustomAuthenticationFailureHandler())

.permitAll()

.userDetailsService(customUserDetailsService)

.logout(logout -> logout

IX
.logoutUrl("/api/logout")

.addLogoutHandler(new HeaderWriterLogoutHandler(new
ClearSiteDataHeaderWriter(CACHE, COOKIES)))

);

return http.build();

@Bean

public WebMvcConfigurer corsConfigurer() {

return new WebMvcConfigurer() {

@Override

public void addCorsMappings(CorsRegistry registry) {

registry.addMapping("/**").allowedOrigins("http://localhost:3000");

};

@Bean

public BCryptPasswordEncoder passwordEncoder() {

return new BCryptPasswordEncoder();

X
APPLICATION PROPERTIES

spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver

spring.datasource.url=jdbc:mysql://localhost:3306/blog_database

spring.datasource.username=root

spring.datasource.password=9597

spring.sql.init.mode=always

server.port=8084

spring.profiles.active=@spring.profiles.active@

mybatis.configuration.map-underscore-to-camel-case=true

mybatis.type-aliases-package=com.project.blog.pojo

pagehelper.helper-dialect=mysql

pagehelper.reasonable=true

pagehelper.support-methods-arguments=true

pagehelper.params=count=countSql

server.servlet.session.timeout=60m

spring.servlet.multipart.max-file-size=5MB

spring.servlet.multipart.max-request-size=5MB

logging.file.name=logs/post.log

XI
DATABASE
CREATE TABLE IF NOT EXISTS user (
id INT AUTO_INCREMENT PRIMARY KEY,
username VARCHAR(255) NOT NULL,
password VARCHAR(255) NOT NULL
);
CREATE TABLE IF NOT EXISTS post (
id INT AUTO_INCREMENT PRIMARY KEY,
title VARCHAR(255) NOT NULL,
content TEXT NOT NULL,
image VARCHAR(255),
created_at DATETIME DEFAULT CURRENT_TIMESTAMP,
updated_at DATETIME DEFAULT CURRENT_TIMESTAMP,
user_id INT NOT NULL,
FOREIGN KEY (user_id) REFERENCES user(id)
);
CREATE TABLE IF NOT EXISTS tag (
id INT AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(255) NOT NULL
);
CREATE TABLE IF NOT EXISTS post_tag (
post_id INT NOT NULL,
tag_id INT NOT NULL,
FOREIGN KEY (post_id) REFERENCES post(id),
FOREIGN KEY (tag_id) REFERENCES tag(id)
);

XII
REFERENCES

[1] Al-Jarf, Reima (2022) “Blogging about Current Global Events in the EFL
Writing Classroom: Effects on Skill Improvement, Global Awareness and
Attitudes” - British Journal of Teacher Education and Pedagogy.
[2] Bachynska, Nadiia (2022) Educational and Professional Programme
“Online Journalism and Blogging”: Interdisciplinary Content of the
Speciality “Information, Library and Archival Management” - Ukrainian
Journal on Library and Information Science.
[3] Smith, John. (2022) "Building a Robust Blogging Platform with Java and
Spring Boot."- Journal of Web Development.
[4] Barua, Nivedita. (2023). Blogging as a tool to enable students to write
more effectively. Khazar Journal of Humanities and Social Sciences.
[5] Hans, Sahil & Maqsad, Shaik & Swami, Aditya & Kumar, Ashish. (2021).
A Systematic Review of Blogging : Opportunities and Challenges.
International Journal of Scientific Research in Computer Science,
Engineering and Information Technology.
[6] Inamke, Vinit & Shaikh, Asfahan. (2022). Blogging And E-learning
Platform With Company Portfolio. International Journal of Engineering
Applied Sciences and Technology.
[7] Jie Chi Yang & Nian-Shing Chen (2019) “The effects of interaction types
on learning outcomes in a blog-based interactive learning environment” -
A journal by Benazir Quadir, Information Management Department.
[8] Khan, Barkat & Wei, Song & Nadir, Ali & Gul, Rabia & Ullah, Shahid &
Mehmood, Shafaqat & Asma, Asma. (2020). Role of blogging in
perceived learning and satisfaction of students. Journal of Public Affairs.
[9] Mendoza, Maria & Rodriguez, Juan. (2021). "Engaging Students through
Educational Blogging: A Case Study in Higher Education." Journal of
Educational Technology and Society.
[10] Muhammad Sajjad, Umer Zaman (2022) “Innovative Perspective
of Marketing Engagement: Enhancing Users’ Loyalty in Social Media
through Blogging” - Journal of Open Innovation: Technology, Market,
and Complexity.

XIII
[11] Sharma, Ritu & Gupta, Anil. (2019). "Exploring the Impact of
Bloggingon Collaborative Learning: A Study in Secondary Education
Settings." International Journal of Educational Technology.
[12] Obionwu, Victor & Broneske, David & Saake, Gunter. (2023).
Leveraging Educational Blogging to Assess the Impact of Collaborationon
Knowledge Creation. International Journal of Information and Education
Technology.
[13] Qureshi, Muhammad & Mushtaq, Amir & Ahmed, Danyal &
Saleem, Ayesha. (2018). Blogging-Future Media and Internet
Activism.
International Journal of P2P Network Trends and Technology.
[14] Wang, Li & Chen, Wei. (2019) "Efficient Frontend Development for
Blogging Applications Using JavaScript and CSS." - International Journal
of Web Design and Development.
[15] Lopez, Maria & Garcia, Jose. (2021) "Enhancing User Interaction in
a Blogging Platform with Spring Boot RESTful API." - Journal of Software
Engineering.
[16] Spring Boot Documentation: Building RESTful Web
Services -https://spring.io/guides/gs/rest-service
[17] Best Practices for Frontend Development in Modern Blogging
Platforms - https://www.webdevelopmentguide.com/best-practices-
frontend-blogging
[18] JavaScript Fundamentals for Blogging Application
Frontend -https://www.javascript.info
[19] https://www.geeksforgeeks.org
[20] https://www.stackoverflow.com
[21] https://www.javaguides.net

XIV

You might also like

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy