This Blog App is a modern web application that allows users to create, manage, and read blog posts. It supports user authentication via Google and guest access with limited features. The app is built with React and leverages a variety of tools and libraries to deliver a rich user experience.
- User Authentication: Users can log in using their Google account or as a guest with limited features.
- Rich Text Editor: Customizable rich text editor implemented with
react-md-editor
. - Dynamic Data Handling: Utilizes
react-query
for data fetching and mutations. - Routing: Managed by
react-router-dom
for seamless navigation. - Context API: For global state management and user authentication.
- Styling: Styled with
TailwindCSS
andShadcn UI
for a modern, responsive design. - Icons: Uses
remix-icons
for a comprehensive set of icons.
- React: Frontend framework for building the user interface.
- React Query: For data fetching, caching, and synchronization.
- React Router DOM: For client-side routing.
- Context API: For state management and user authentication.
- Shadcn UI: A UI component library for a consistent design.
- TailwindCSS: Utility-first CSS framework for styling.
- Remix Icons: A set of customizable icons.
- react-md-editor: Rich text editor for creating and editing blog content.
- Firebase: Backend service for data storage and user authentication.
-
Clone the Repository
git clone https://github.com/moashraf86/Blogify.git cd blog-app
-
Install Dependencies
npm install
-
Set Up Environment Variables
Create a
.env
file in the root directory and add your Firebase configuration:VITE_APP_FIREBASE_API_KEY=your-api-key VITE_APP_FIREBASE_AUTH_DOMAIN=your-auth-domain VITE_APP_FIREBASE_PROJECT_ID=your-project-id VITE_APP_FIREBASE_STORAGE_BUCKET=your-storage-bucket VITE_APP_FIREBASE_MESSAGING_SENDER_ID=your-messaging-sender-id VITE_APP_FIREBASE_APP_ID=your-app-id VITE_APP_FIREBASE_MEASUREMENT_ID=your-measurement-id
-
Run the Development Server
npm run dev
- Create an Account: Log in using your Google account or enter as a guest.
- Create and Manage Posts: Use the rich text editor to write and manage your blog posts.
- Navigation: Navigate through the app using the integrated routing system.
- Bookmarks and Comments: Interact with posts by bookmarking and commenting.
We welcome contributions to the project! To get started:
-
Fork the Repository: Create a personal copy of the repository by forking it on GitHub.
-
Clone Your Fork: Clone your fork to your local machine.
git clone https://github.com/moashraf86/Blogify.git
-
Create a New Branch: Create a new branch for your changes.
git checkout -b my-feature-branch
-
Make Changes: Implement your changes or new features.
-
Commit Your Changes: Commit your changes with a clear and descriptive message.
git add . git commit -m "Add feature or fix issue"
-
Push Your Changes: Push your changes to your forked repository.
git push origin my-feature-branch
-
Submit a Pull Request: Go to the original repository and submit a pull request from your branch. Provide a clear description of the changes and why they should be merged.
This project is licensed under the MIT License.
Feel free to adjust any specifics according to your needs!