| 🌟 Stars | 🍴 Forks | 🐛 Issues | 🔔 Open PRs | 🔕 Closed PRs | 🛠️ Languages |
- 👀 Table of Contents
- 🦾 Features
- 🛠 Technologies Used
- 🧩 Installation
- ⚙ Usage
- 🛡 Contributing
- ❤️ Our Contributors
- ⭐ Show Your Support
- 🍴 Forkers
- License
- User authentication (Login/Sign-up) via Appwrite
- Create, edit, and delete blog posts
- Categorize posts with tags and categories
- File upload support for images and media
- Responsive design for both desktop and mobile views
- Frontend: HTML, CSS, JavaScript, Tailwind css , React
- Backend: Appwrite for user authentication, database, and file storage
- Database: Appwrite Database
- Authentication: Appwrite Authentication
- Link: Click Here
- Node.js and npm (or yarn) installed on your machine.
- Appwrite instance running locally or on a cloud server.
-
Clone the repository:
git clone https://github.com/SumitGorai01/TechieBlog.git
-
Navigate into the project directory:
cd TechieBlog -
Install the dependencies:
npm install
-
Set up Appwrite: If you don’t have an Appwrite account, follow these steps:
- Register for an account on the Appwrite website.
- Verify your email address.
- Log in to your Appwrite account.
- Create a new project in Appwrite to organize your resources.
- Set up a new database in the project to store data.
- Create a new collection within the database to organize data documents.
- Add necessary permissions and document security settings for the created collection.
- Set up storage and create a bucket in Appwrite to store files.
- Add necessary permissions and document security settings for the storage bucket.
- Generate an API key and configure Appwrite SDK in your project.
-
Set up TinyMCE:
- Simply create an account on TinyMCE website.
- Get your API key.
-
Configure environment variables for:
Create a .env file in the root directory and replace the following with .env.sample
VITE_APPWRITE_URL = "https://cloud.appwrite.io/v1" # VITE_APPWRITE_URL=https://fra.cloud.appwrite.io/v1 VITE_APPWRITE_PROJECT_ID = "" VITE_APPWRITE_DATABASE_ID = "" VITE_APPWRITE_COLLECTION_ID = "" VITE_APPWRITE_BUCKET_ID = "" VITE_API_KEY = "" VITE_APPWRITE_COMMENT_COLLECTION_ID = "" # VITE_BASE_LINK = 'https://techie-blogs.vercel.app/' VITE_BASE_LINK = 'http://localhost:5173/' VITE_APPWRITE_USER_COLLECTION_ID = "" VITE_APPWRITE_EVENT_ID="" VITE_APPWRITE_SAVEFORLATER_COLLECTION_ID="" VITE_EMAILJS_SERVICE_ID="" VITE_EMAILJS_TEMPLATE_ID = "" VITE_EMAILJS_PUBLIC_KEY = "" VITE_EMAILJS_SERVICE_ID_FEEDBACK = "" VITE_EMAILJS_TEMPLATE_ID_FEEDBACK ="" VITE_EMAILJS_PUBLIC_KEY_FEEDBACK =""
-
Start the application:
npm run dev
-
The app should now be running at http://localhost:5173 (or another specified port).
To contribute to the TechieBlog project, you need to set up your own Appwrite instance and obtain the required keys. Follow these steps:
-
Create an Appwrite Account
- Go to the Appwrite website.
- Click on Sign Up and create a new account.
- Verify your email address to activate your account.
-
Create a New Project
- Log in to your Appwrite account.
- Click on Create Project.
- Name your project (e.g., TechieBlog) and click Create.
-
Set Up a Database
- In your project dashboard, go to the Database section.
- Click on Create Database.
- Name your database (e.g., TechieBlogDB) and click Create.
- Inside the database, create a collection for blog posts:
- Click on Create Collection.
- Name it (e.g., Posts) and configure permissions (e.g., read/write access for users).
- Create another collection for comments:
- Click on Create Collection.
- Name it (e.g., Comments) and configure permissions.
Overall Database
Article Schema
Comment Schema
Events
savedForLater
users
Permissions
-
Set Up Storage
- In your project dashboard, go to the Storage section.
- Click on Create Bucket.
- Name your bucket (e.g., BlogImages) and configure permissions (e.g., read/write access for users).
-
Generate API Keys
- In your project dashboard, go to the API Keys section.
- Click on Create API Key.
- Select the required scopes (e.g., Database, Storage, Users).
- Click Create and copy the generated API key.
Docker Setup✅
Run the application in a containerized environment using Docker. Prerequisites: Docker desktop installed
- Build the Docker Image and run all these commands in terminal :-
docker build . -t techieblog
- Run the Container :-
docker run -d -p 5173:5173 techieblog
Once the app is running, you can:
- Register an account and log in using Appwrite authentication
- Start creating and managing blog posts
- Add tags, categories, and images to posts Comment on other users' posts
Contributions are welcome! Please fork the repository and submit a pull request. Before contributing, ensure that the tests pass and the code adheres to the project's coding standards.
- Fork the repository
- Create a new branch (git checkout -b feature/your-feature)
- Make your changes and commit them
- Push to the branch (git push origin feature/your-feature)
- Create a pull request to the main repository
If you found this project helpful, please consider giving it a ⭐️
Note: This project uses a modified MIT License that includes additional restrictions.
Please see the LICENSE file for more details.