This project is a feature-rich blog application built using the MERN stack (MongoDB, Express.js, ReactJS, Node.js) along with Redux for state management. The application not only supports creating, editing, and managing blog posts but also fetches and displays content from other websites using RSS feeds.
- Create, Read, Update, and Delete (CRUD) Operations: Users can create new blog posts, read existing posts, update them, and delete them.
- Admin Panel: Provides a management interface for admins to approve or reject posts, manage users, and monitor the system.
- User Roles: Different roles for admin and regular users with specific permissions.
- Comment System: Users can comment on blog posts.
- Tag and Category Management: Classify posts into categories and tags for easy filtering and search.
- Fetch Posts from Other Websites: Automatically fetch and display posts from other websites using their RSS feeds.
- RSS Feed Parsing: Regularly parse and update content from external RSS feeds to keep the blog updated with fresh content.
- Custom Feed Processing: Filter and process RSS feeds to remove unwanted HTML tags or elements, ensuring clean and consistent content display.
- Responsive Design: Optimized for both desktop and mobile devices for a seamless user experience.
- Search Functionality: Search for blog posts based on keywords, categories, or tags.
- Pagination: Efficiently handle large numbers of posts with pagination support.
- Rich Text Editor: Use a rich text editor for creating and editing posts, allowing for formatting and media inclusion.
- ReactJS: JavaScript library for building user interfaces.
- Redux: State management for handling global app states, such as user actions and blog post data.
- React Router: For managing navigation and routing in the application.
- Node.js: JavaScript runtime for building server-side applications.
- Express.js: Web framework for creating RESTful APIs and handling server logic.
- MongoDB: NoSQL database for storing user information, blog posts, comments, and more.
- RSS Parser: Node.js library for parsing and handling RSS feeds to fetch external posts.
Before you begin, ensure you have the following installed:
- Node.js (v14.x or higher)
- npm (Node Package Manager)
- MongoDB (running locally or using a cloud service like MongoDB Atlas)
-
Clone the Repository
Open your terminal and run:
git clone https://github.com/MayankJha014/Entrepreneur-Woods.git cd blog-app
-
Install Dependencies
-
Server-Side Dependencies:
Navigate to the
server
directory and install the required Node.js packages:cd server npm install
-
Client-Side Dependencies:
Navigate to the
client
directory and install the necessary React packages:cd client npm install
-
-
Start MongoDB
Ensure your MongoDB server is running. If using MongoDB Atlas, ensure the service is configured correctly.
-
Run the Backend Server
Start the Node.js server by navigating to the
server
directory and running:cd server npm start
The backend server will start on
http://localhost:5000
. -
Run the Frontend Server
Start the React development server by navigating to the
client
directory and running:cd client npm start
The frontend will start on
http://localhost:3000
.
- Access the Blog Application: Open a web browser and go to
http://localhost:3000
. - Create a Post: Write and publish a new blog post.
- View RSS Feeds: Access posts fetched from external websites using the integrated RSS feed.
Include screenshots of different parts of the application:
-
Main Blog Feed: Display posts, including those fetched from RSS feeds.
-
Admin Panel: Demonstrate the capabilities of managing users and posts.
This project is licensed under the MIT License. You are free to use, modify, and distribute this software as long as the original license is included.
- ReactJS: A JavaScript library for building user interfaces.
- Redux: A predictable state container for JavaScript apps.
- Express.js: Fast, unopinionated, minimalist web framework for Node.js.
- MongoDB: A general-purpose, document-based, distributed database.
- RSS Parser: A fast RSS feed parser for Node.js.
This blog application is a robust and scalable solution for creating and managing blog content, both user-generated and sourced from external websites via RSS feeds. It can serve as a solid foundation for personal blogs, content curation platforms, or as a base for more complex projects. Feel free to customize and expand upon the features as needed. Happy coding!