|
| 1 | +<div align="center"> |
| 2 | + <br /> |
| 3 | + <a href="https://youtu.be/_W3R2VwRyF4?feature=shared" target="_blank"> |
| 4 | + <img src="https://github.com/adrianhajdin/social_media_app/assets/151519281/be514a19-3cbb-48b7-9acd-2cf4d2e319c4" alt="Project Banner"> |
| 5 | + </a> |
| 6 | + <br /> |
| 7 | + <div> |
| 8 | + <img src="https://img.shields.io/badge/-React_JS-black?style=for-the-badge&logoColor=white&logo=react&color=61DAFB" alt="react.js" /> |
| 9 | + <img src="https://img.shields.io/badge/-Appwrite-black?style=for-the-badge&logoColor=white&logo=appwrite&color=FD366E" alt="appwrite" /> |
| 10 | + <img src="https://img.shields.io/badge/-Tailwind_CSS-black?style=for-the-badge&logoColor=white&logo=tailwindcss&color=06B6D4" alt="tailwindcss" /> |
| 11 | + <img src="https://img.shields.io/badge/-React_Query-black?style=for-the-badge&logoColor=white&logo=reactquery&color=FF4154" alt="reactquery" /> |
| 12 | + <img src="https://img.shields.io/badge/-Typescript-black?style=for-the-badge&logoColor=white&logo=typescript&color=3178C6" alt="typescript" /> |
| 13 | + </div> |
| 14 | + |
| 15 | + <h1 align="center">A Social Media Application SnapGram</h1> |
| 16 | +</div> |
| 17 | + |
| 18 | +## 📋 <a name="table">Table of Contents</a> |
| 19 | + |
| 20 | +1. 🤖 [Introduction](#introduction) |
| 21 | +2. ⚙️ [Tech Stack](#tech-stack) |
| 22 | +3. 🔋 [Features](#features) |
| 23 | +4. 🤸 [Quick Start](#quick-start) |
| 24 | +5. 🔗 [Contact](#contact) |
| 25 | + |
| 26 | +## <a name="introduction">🤖 Introduction</a> |
| 27 | + |
| 28 | +Explore social media with this user-friendly platform that has a nice look and lots of features. Easily create and explore posts, and enjoy a strong authentication system and quick data fetching using React Query for a smooth user experience. |
| 29 | + |
| 30 | +## <a name="tech-stack">⚙️ Tech Stack</a> |
| 31 | + |
| 32 | +- React.js |
| 33 | +- Appwrite |
| 34 | +- React Query |
| 35 | +- TypeScript |
| 36 | +- Shadcn |
| 37 | +- Tailwind CSS |
| 38 | + |
| 39 | +## <a name="features">🔋 Features</a> |
| 40 | + |
| 41 | +👉 **Authentication System**: A robust authentication system ensuring security and user privacy |
| 42 | + |
| 43 | +👉 **Explore Page**: Homepage for users to explore posts, with a featured section for top creators |
| 44 | + |
| 45 | +👉 **Like and Save Functionality**: Enable users to like and save posts, with dedicated pages for managing liked and saved content |
| 46 | + |
| 47 | +👉 **Detailed Post Page**: A detailed post page displaying content and related posts for an immersive user experience |
| 48 | + |
| 49 | +👉 **Profile Page**: A user profile page showcasing liked posts and providing options to edit the profile |
| 50 | + |
| 51 | +👉 **Browse Other Users**: Allow users to browse and explore other users' profiles and posts |
| 52 | + |
| 53 | +👉 **Create Post Page**: Implement a user-friendly create post page with effortless file management, storage, and drag-drop feature |
| 54 | + |
| 55 | +👉 **Edit Post Functionality**: Provide users with the ability to edit the content of their posts at any time |
| 56 | + |
| 57 | +👉 **Responsive UI with Bottom Bar**: A responsive UI with a bottom bar, enhancing the mobile app feel for seamless navigation |
| 58 | + |
| 59 | +👉 **React Query Integration**: Incorporate the React Query (Tanstack Query) data fetching library for, Auto caching to enhance performance, Parallel queries for efficient data retrieval, First-class Mutations, etc |
| 60 | + |
| 61 | +👉 **Backend as a Service (BaaS) - Appwrite**: Utilize Appwrite as a Backend as a Service solution for streamlined backend development, offering features like authentication, database, file storage, and more |
| 62 | + |
| 63 | +and many more, including code architecture and reusability |
| 64 | + |
| 65 | +## <a name="quick-start">🤸 Quick Start</a> |
| 66 | + |
| 67 | +Follow these steps to set up the project locally on your machine. |
| 68 | + |
| 69 | +**Prerequisites** |
| 70 | + |
| 71 | +Make sure you have the following installed on your machine: |
| 72 | + |
| 73 | +- [Git](https://git-scm.com/) |
| 74 | +- [Node.js](https://nodejs.org/en) |
| 75 | +- [npm](https://www.npmjs.com/) (Node Package Manager) |
| 76 | + |
| 77 | +**Cloning the Repository** |
| 78 | + |
| 79 | +```bash |
| 80 | +git clone https://github.com/Bashar-Omar/SnapGram.git |
| 81 | +cd SnapGram |
| 82 | +``` |
| 83 | + |
| 84 | +**Installation** |
| 85 | + |
| 86 | +Install the project dependencies using npm: |
| 87 | + |
| 88 | +```bash |
| 89 | +npm install |
| 90 | +``` |
| 91 | + |
| 92 | +**Set Up Environment Variables** |
| 93 | + |
| 94 | +Create a new file named `.env` in the root of your project and add the following content: |
| 95 | + |
| 96 | +```env |
| 97 | +VITE_APPWRITE_URL= |
| 98 | +VITE_APPWRITE_PROJECT_ID= |
| 99 | +VITE_APPWRITE_DATABASE_ID= |
| 100 | +VITE_APPWRITE_STORAGE_ID= |
| 101 | +VITE_APPWRITE_USER_COLLECTION_ID= |
| 102 | +VITE_APPWRITE_POST_COLLECTION_ID= |
| 103 | +VITE_APPWRITE_SAVES_COLLECTION_ID= |
| 104 | +``` |
| 105 | + |
| 106 | +Replace the placeholder values with your actual Appwrite credentials. You can obtain these credentials by signing up on the [Appwrite website](https://appwrite.io/). |
| 107 | + |
| 108 | +**Running the Project** |
| 109 | + |
| 110 | +```bash |
| 111 | +npm start |
| 112 | +``` |
| 113 | + |
| 114 | +Open [http://localhost:3000](http://localhost:3000) in your browser to view the project. |
| 115 | + |
| 116 | +## Contact |
| 117 | + |
| 118 | +- Website [Incodey](https://incodey.com/) |
| 119 | +- GitHub [Bashar-Omar](https://github.com/Bashar-Omar) |
| 120 | +- linkedin [bashar-omar](https://www.linkedin.com/in/bashar-omar/) |
0 commit comments