Batch 3 Eduhub Empowering Learners Through Blogging
Batch 3 Eduhub Empowering Learners Through Blogging
BLOGGING
A PROJECT REPORT
Submitted by
GOKULSHANKAR P 71052002013
SARANYA N 71052002048
of
BACHELOR OF ENGINEERING
IN
(Autonomous)
COIMBATORE – 641109
MAY 2024
EDUHUB – EMPOWERING LEARNERS THROUGH
BLOGGING
A PROJECT REPORT
Submitted by
GOKULSHANKAR P 71052002013
SARANYA N 71052002048
of
BACHELOR OF ENGINEERING
IN
(Autonomous)
COIMBATORE – 641109
MAY 2024
I
COIMBATORE INSTITUTE OF ENGINEERING AND
TECHNOLOGY
(Autonomous/Approved by AICTE/Affiliated to Anna University)
COIMBATORE - 641109
BONAFIDE CERTIFICATE
GOKULSHANKAR P 20BCS013
SARANYA N 20BCS049
SIGNATURE SIGNATURE
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.
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
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.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
VII
7.2.1.4 Commenting System 50
7.8.3 Database 55
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.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
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
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
XII
LIST OF ABBREVIATIONS
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 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
GOAL:
3
1.5 ADVANTAGES OF THE PROPOSED SYSTEM
4
1.7 MOTIVATION AND FUTURE SCOPE
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
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.
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.
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.
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.
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.
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.
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.
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.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.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.
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.
Pros:
15
• Less Complex Deployment: Deployment is typically straightforward
compared to microservices.
Cons:
Pros:
16
Cons:
The Table 2.1 given below shows the Comparative analysis of Monolithic and
Microservices approaches:
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
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
19
CHAPTER 3
SYSTEM 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.,
➢ Server-Side:
Application Server: Handles the business logic and processes user requests.
Web Server: Manages incoming HTTP requests and serves static assets.
➢ Database:
➢ Middleware:
21
➢ Application Programming Interface (API):
➢ File system:
USER INTERFACE
APPLICATION LAYER
SERVER
DATABASE
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.
23
Fig 3.4: Creating a blog post
24
3.3. BLOGGING INTERFACE ARCHITECTURE
The architecture of the proposed blogging system is shown in the above Fig 3.7 The
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
26
CHAPTER 4
27
4.5. Search and Discovery
Implement a robust search feature to help users find relevant blog posts.
Allow learners to create and publish posts, include options for adding
multimedia content, quizzes, and assignments.
Provide tools for group communication and file sharing and implement peer
review mechanisms for assignments and projects.
Provide an intuitive interface for educators to create and edit courses, include options
for adding and organizing course modules.
28
4.11. Mobile Responsiveness
The Table 4.1 below shows the Features and Functionality of the Project
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
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.
➢ 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
31
5.3 SPRING FRAMEWORK
➢ The architectural design patterns and components used within the Spring
Framework are as follows:
• Core Container
32
• Data Access Layer
• Messaging
• Transaction Management
• Model-View-Controller (MVC)
33
View Resolver: Resolves views for rendering.
• Security
• Testing
• Spring Boot
• Integration
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.
35
Fig 5.5: Architecture of Spring Security
36
5.5 WEB TECHNOLOGIES
37
5.6 DATABASE
➢ Data Stored
38
➢ Working
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.
➢ 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.
41
CHAPTER 6
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.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.
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.
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.
45
CHAPTER 7
DEVELOPMENT METHODOLOGY
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:
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.
3. Design:
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.
48
Collaboration: Developers and stakeholders collaborate regularly to discuss
progress, challenges, and potential adjustments to the project scope.
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.
49
a. SYSTEM MODULES
7.2.1 WORK PHASE 1
7.2.1.2 User
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.
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
53
f. DATAANALYSIS
The goal is to assess the feasibility of transitioning from manual greetings to an
automatic system.
54
g. TECHNOLOGIES
7.8.1 FRONT END
• HTML
• CSS
• JS
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
56
CHAPTER 8
SYSTEM DESIGN
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
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.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.
The below structure diagram contains a series of operation towards the blog
content.
60
Creating and Editing a Blog post is shown in the Fig 8.6
61
CHAPTER 9
RESULTS AND DISCUSSION
62
Fig 9.3 represents the Structure of Quiz application
Fig 9.4 represents the Structure of the Login page of Blogging Interface
63
Fig 9.5 represents the Structure of the Sign-up page of Blogging Interface
Fig 9.6 represents how the View of a blog post page looks like
64
Our blogging interface allows to search contents based on tags and keywords. It is
shown in the Fig 9.7
Users and Admin can also share materials for collaborative knowledge sharing. It is
shown in the Fig 9.8
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
66
Fig 9.11: Quiz Admin page
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.
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
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
73
APPENDIX 1
SOURCE CODE
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")
@Autowired
I
this.postService = postService;
@GetMapping
return ResponseEntity.ok(posts);
@ValidatePost(data = false)
@GetMapping("/{id}")
return ResponseEntity.ok(postService.getPostById(id));
/**
II
* @param title post title
*/
@ValidatePost(id = false)
@PostMapping
){
// insert success
return ResponseEntity.created(null).build();
// insert failed
return ResponseEntity.internalServerError().build();
}
III
/**
*/
@ValidatePost
@PutMapping("/{id}")
@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)
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.web.header.writers.ClearSiteDataHeaderWriter.Di
rective.CACHE;
VII
import static
org.springframework.security.web.header.writers.ClearSiteDataHeaderWriter.Di
rective.COOKIES;
@Configuration
@EnableWebSecurity
@Autowired
this.customUserDetailsService = customUserDetailsService;
@Bean
http
.cors(withDefaults())
VIII
"/.ico", "/.json", "/api/tag", "/api/session",
.requestMatchers(HttpMethod.GET, "/api/post/**").permitAll()
.anyRequest().authenticated()
.csrfTokenRepository(CookieCsrfTokenRepository.withHttpOnlyFalse())
.csrfTokenRequestHandler(new
CsrfTokenRequestAttributeHandler())
.addFilterAfter(new CookieCsrfFilter(),
BasicAuthenticationFilter.class)
.loginPage("/login")
.loginProcessingUrl("/api/login")
.failureHandler(new CustomAuthenticationFailureHandler())
.permitAll()
.userDetailsService(customUserDetailsService)
IX
.logoutUrl("/api/logout")
.addLogoutHandler(new HeaderWriterLogoutHandler(new
ClearSiteDataHeaderWriter(CACHE, COOKIES)))
);
return http.build();
@Bean
@Override
registry.addMapping("/**").allowedOrigins("http://localhost:3000");
};
@Bean
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