NAME Vinay Jadhav
UID 2021600026
Batch B
Branch CSE AIML
EXP 3
Problem Develop a distributed computing solution for a dynamic blogging website that enables
users to create, update, and delete their blog posts, while also incorporating features for
Statement: liking and commenting on posts. The system should efficiently handle concurrent user
interactions
Scope of the ● Designing and developing a user-friendly interface for the blogging website.
Project: ● Implementing user authentication and authorization mechanisms to ensure
secure access to user accounts and blogs.
● Creating functionalities for users to create, update, and delete their blogs.
● Incorporating features for users to like and comment on blogs to encourage
engagement and interaction.
● Implementing robust backend systems to manage blog data storage, retrieval,
and updates.
Objective of the ● Create a dynamic and engaging platform that empowers users to express
Project: themselves through blogging.
● Foster a sense of community and collaboration among users by facilitating
interaction and dialogue through likes, shares, and comments.
● Provide users with the tools and resources necessary to create, share, and
discover meaningful content.
● Enhance user experience by delivering a seamless and intuitive interface that
encourages exploration and participation.
● Cultivate a vibrant and supportive blogging community that encourages
creativity, expression, and learning.
Functional
● User Authentication:
Requirements: ○ Registration and login functionality using JWT.
○ Secure password storage.
● Blogging Features:
○ Create, edit, and delete blog posts.
○ Like and comment on blog posts.
● User Interaction:
○ User profiles with personalization options.
Non-Functional
Requirements: ● Security:
○ Use of JWT for secure authentication.
○ Password encryption..
● Performance:
○ Efficient database queries for quick retrieval.
● Scalability:
○ Design the system to handle an increasing number of users and
posts.
● Usability:
○ Intuitive user interface and user experience.
○ Cross-browser compatibility and responsiveness.
Website Frontend: (React)
Architecture:
1. Home Page
- Display a List of Blog Post (Anyone can view the blog, No
authentication required)
- Each post should show the title, author, date, and a brief preview of the
content.
- Include a "Read More" link/button to view the full post.
2. Single Blog Post Page
- Display the full content of a blog post.
- Show the author, date, and number of likes.
- Allow users to like the post. (Authentication required)
- Display comments with the ( option to add new comments
[Authentication required]).
3. Create/Edit/Delete Blog Post Page (Authentication required)
- Allow users to create new blog posts or edit existing ones.
- Fields: Title, Content, Author (automatically set based on
authentication).
4. User Authentication
- Allow users to sign up, log in, and log out.
- Only authenticated users can create/edit blog posts, like posts, and
comment.
- JWT token for authentication.
5. Likes Component
- Display the number of likes on each post.
- Allow authenticated users to like/unlike a post.
- Update the like count in real-time.
6. Comments Component
- Display comments for each post.
- Allow users to add new comments.
Backend (Django)
1. To connect MongoDB to Django, will use the djongo library, which is a
database connector that allows Django to work with MongoDB.
2. Models
- User ( To Store user personal Information).
- Blogs (Title, Content, Date, Likes, Comments)
3. Api Endpoints
Database (MongoDB)