Prashant0664 / Blog-website

A Blogging website created using MERN(MongoDB, ExpressJS, ReactJs, NodeJS)

Home Page:https://allblogapp-project.vercel.app

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Blogging Website

For Hacktoberfest please refer Contributing.md

Table of Contents


Introduction

Welcome to the Blogging Website project! This is a web application built using the MERN (MongoDB, Express.js, React.js, Node.js) stack. It allows users to create and manage their blogs, post projects, follow other users, comment on blogs, save content, bookmark blogs, and more. The application also includes features such as email verification for user registration and Redux for state management.


Demo

Blogging.Website.Demo.mp4

Features

Here are some of the key features of this Blogging Website:

🔥 User Authentication and Profiles: Users can create and manage their profiles, with email verification for account security.

🔥 Blogging: Users can create and publish their blogs with rich text formatting.

🔥 Project Posting: Users can share and showcase their projects on their profile.

🔥 Social Features: Users can follow other users, comment on blogs, and save/bookmark content they like.

🔥 Responsive Design: The website is designed to work seamlessly on various screen sizes and devices.

🔥 Secure: The application follows best practices for security, including password hashing and user authentication.

🔥 Content Management: Users can easily edit, delete, or download their own posts.


Technologies Used

The Blogging Website is built using the following technologies:

  • MERN Stack:
    💫 MongoDB: A NoSQL database used to store user data, blogs, and other application data.
    💫 Express.js: A Node.js web application framework used for building the server.
    💫 React.js: A JavaScript library for building the user interface.
    💫 Node.js: A JavaScript runtime used for server-side code execution.

  • Additional Technologies:
    💫 Redux: Used for state management within the React application.
    💫 Nodemailer: Used for email verification and sending email notifications.


Getting Started

To set up this project locally, follow the instructions below.

Prerequisites

Before you begin, make sure you have the following installed on your system:

  • Node.js and npm (Node Package Manager)
  • Git

Installation

(Request: Please Star⭐️ the Repo or follow github if you find this project interesting😁!
)

  1. Clone this GitHub repository to your local machine:

    git clone https://github.com/prashant0664/blog-website.git
    
  2. Change into the project directory:

    cd blog-website
    
  3. Install the backend dependencies:

    cd backend
    npm install
    
  4. Install the frontend dependencies:

    cd ../client
    npm install
    
  5. Set up your MongoDB database and configure the connection details in the backend's .env file.

  6. Start the backend server:

    cd ../backend
    npm start
    
  7. Start the frontend development server:

    cd ../client
    npm start
    
  8. Open your web browser and navigate to http://localhost:3000 to access the Blogging Website.


Usage

You can now use the Blogging Website to create, share, and discover blogs, projects, and more. Register an account, verify your email, and start enjoying the features of the application.


Contributing

Please Star⭐️ the Repo or follow github if you find this project interesting😁!
Contributions to this project are welcome! If you'd like to contribute, please follow these steps:

  1. Fork the repository.
  2. Create a new branch for your feature or bug fix.
  3. Make your changes and commit them with clear and descriptive commit messages. (Installation and Setup has been Explained in Getting-Started )
  4. Push your changes to your fork.
  5. Submit a pull request to the main repository.


License

This project is licensed under the MIT License. See the LICENSE file for details.


Notes: For any doubt or question you can open an issue. I will reply ASAP.

Thank you for using and contributing to the Blogging Website project! If you have any questions or need assistance, please don't hesitate to reach out to the maintainers.