This project is a Blog Application built using the MERN Stack (MongoDB, Express.js, React, Node.js). It allows users to create, edit, and manage blog posts with a rich-text editor powered by React Quill. The application features user authentication using JWT (JSON Web Tokens) for secure access and provides functionalities like image uploads and dynamic content management.
- Secure user login and registration with JWT-based authentication.
- Persistent user sessions with token management.
- Role-based access to resources (e.g., only authors can edit their posts).
- Create New Posts: Users can compose posts using a rich text editor (React Quill) with advanced formatting options.
- Edit Existing Posts: Edit content, update summaries, and modify uploaded images dynamically.
- View Posts: A clean and responsive interface to display blog content.
- Users can upload images for their blog posts.
- Uploaded images are stored in the server's file system and dynamically rendered.
- Powered by React Quill, enabling features like:
- Bold, italic, and underline formatting.
- Lists, links, and media embedding.
- Header styles and blockquotes.
- Fully responsive front-end, optimized for desktop and mobile devices.
- React: Dynamic and responsive user interface.
- React Router: Navigation and routing between pages.
- React Quill: Rich-text editor for post content creation and editing.
- Axios: For API calls to the backend.
- Node.js: Server-side JavaScript runtime.
- Express.js: Web framework for handling routes and middleware.
- Multer: Middleware for handling file uploads.
- JWT: Secure token-based authentication.
- MongoDB: Document-oriented database to store user and blog post data.
- Registration:
- Users register with their email, username, and password.
- Passwords are securely hashed before storing in the database.
- Login:
- Users authenticate with their credentials.
- A JWT token is generated and stored for secure session management.
- Create Post:
- Compose posts with a title, summary, content, and optional image.
- Edit Post:
- Modify post content, title, summary, or image.
- Authorization ensures only the original author can edit the post.
- Users can upload images as part of their blog posts.
- Images are stored in a server-side folder and linked dynamically in posts.
- Node.js and npm installed.
- MongoDB installed and running.
- Clone the repository: bash git clone https://github.com/munavarhs/FullStack-Blog-App.git cd FullStack-Blog-App