BLOGGING PLATFORM
A CLOUD BASED APPLICATION – WEBTECH MINI PROJECT
Gadiraju Dinesh - 2022115094
Arnaud Joe Nirmal A - 2022115090
1
Blogging Platform – A Cloud Based Web Application
1. Introduction :
In today’s digital era, personal and community blogs play a significant role in
sharing ideas, knowledge, and experiences with a global audience. Our Blogging
Platform which is a cloud based web application is designed to provide a seamless
and interactive environment for users to express themselves, connect with like-
minded individuals, and explore diverse content.
The platform combines a dynamic React.js frontend with a robust Java
backend using Servlets, ensuring a responsive user experience and secure data
management.
2. Overview :
2.1 Frontend :
The Blogging Platform offers a comprehensive set of features tailored to both
personal and community blogging needs. Users can register and log in to their
accounts, where sessions are securely managed using the HttpServletRequest
object. The session variable is maintained all over the website to provide seamless
access and preferences for the user. React JS is primarily used for frontend for
smooth API calls to the backend to ensure Servlets work as intended.
Upon logging in, users are directed to their Landing Page, which displays all
blogs authored by them. From this page, they can also create new blogs through an
intuitive Create Blog feature that supports including images support to enhance their
posts.
In addition to personal blogs, the platform features a Community Page where
users can discover blogs written by others. These blogs are categorized into topics
like Technology, Lifestyle, and more, enabling easier navigation. The Search
Functionality in the Community Page, implemented using AJAX, ensures real-time
search results without requiring page reloads, enhancing the user experience.
2
2.1 Backend :
The platform's backend ensures smooth communication between the
frontend and the database, managing user data, blog content, and images
efficiently. The integration of modern web development technologies with
essential features like categorization, search, and multimedia support makes
this platform an engaging and user-friendly tool for bloggers and readers
alike.
The backend of the Blogging Platform is implemented entirely using
pure raw Java and Java Servlets, ensuring a straightforward and efficient
handling of server-side operations without relying on additional frameworks.
This approach not only enhances the understanding of core Java and Servlet
technologies but also provides precise control over backend processes,
making the application robust and highly customizable.
For data storage, we chose PostgreSQL as the database management
system due to its reliability, advanced features, and ability to handle complex
queries efficiently. The database is structured into four main tables:
1. users: This table stores essential user information, such as usernames, email
addresses, and passwords, to manage authentication and maintain account
security.
2. blogs: The blogs table holds the primary content created by users, including
the blog title, content, timestamps, and the user ID to associate each blog with
its author.
3. blog_images: This table manages any images associated with blogs, storing
URLs for images added by users in their blog posts to enhance visual appeal
and engagement.
4. blog_likes: This table tracks user interactions with blogs, including likes and
comments. It includes a column for storing comments, and if this column is
NULL, the entry represents a like for the corresponding blog. This design
allows the table to efficiently manage both likes and comments, simplifying
data storage while enabling future enhancements such as analytics or
personalized recommendations based on user engagement.
3
3. Key Features / Uniqueness in our Project :
1. User Authentication and Session Management: Secure login and
registration functionality with session tracking.
2. Landing Page: Displays blogs authored by the logged-in user and provides
access to the Create Blog feature.
3. Create Blog: Allows users to compose blogs with optional image URLs, which
are displayed in the blog listings.
4. Community Page: Displays categorized blogs from other users, fostering
community interaction.
5. Search Functionality: AJAX-based search for instantaneous results without
page reloads.
6. Pure Java functionalities : Our Project contains only pure java code and
servlets without any other fancy frameworks , leading to detailed
understanding of how really Java Servlets work.
4. Snippets of our Project :
4.1 Login and Register Page :
Fetching of user data from the users table for authentication and session
management..
4
4.2 Landing Page :
After logging in successfully , the blogs published by the particular user
are displayed in the dashboard / landing page.
5
4.3 Create a New Blog :
Here user can publish a new blog. Gets input like blog title , blog
content , topic of the blog and the image url of the image to be
displayed in the blog.
4.4 Community Page :
Here user can view the blogs published by other users. Users can also
filter the blogs based on the topic they wish to read about.
6
4.5 Comments and Likes :
Here user can comment and like other blogs present in the community
page to mimic actual blogging websites.
4.6 Search using AJAX Technology:
Users can easily find other user blogs by using the search function
implemented by the search bar in the community page. Implemented using
AJAX to ensure seamless searching experience without reloading of the
webpage.
7
5. Conclusion :
The Blogging Platform is a user-friendly application that allows individuals to express
themselves through blogging while fostering community interaction. With features
like secure login, personalized landing pages, community exploration, and seamless
blog creation, the platform provides an engaging space for users to connect and
share ideas. Its intuitive design and efficient functionality make it a versatile tool for
bloggers and readers alike, offering an enjoyable and enriching experience.
The backend of the platform is implemented entirely using pure raw Java and Java
Servlets, ensuring precise control over server-side processes without reliance on
additional frameworks. This approach enhances the understanding of core Java
technologies while providing a lightweight and scalable backend. This foundation
ensures efficient handling of the platform’s core functionalities, making it both robust
and highly customizable.