ShareMe

https://user-images.githubusercontent.com/73928744/202767277-d99f4c09-5a42-4dfb-9873-72f3bd6843e9.mp4
Flow of the application
Backend Firebase + DB using sanity.io
- Using sanity studio to create the schemas (database)
- Creating schemas (blueprint of the content)
- For creating users (By userName and Image)
- For Creating Pins (Title,About, Destination, Category, Image, UserID, PostedBy, Save, Comments)
- Saving Posts
- Adding comments
Frontend using React + Tailwind CSS
- Setup the project using create-react-app from Tailwind website
- package.json
- sanity client , sanity image url
- react-router-dom
- react-icons
- react-masonry-css
- react-spinners
- Chakra UI - Toast
- Login
- Adding video with dark overlay + controls
- Firebase integration - Google + Github
- Adding newly created users on sanity db
- Check if user already logged in
- Redirecting to the homepage once logged in
- Adding Typed.js Animations
- Sidebar
- Link vs NavLink
- User attributes naming convention
- Listing all categories
- Go to userProfile Button
- Pins container
- Setting up entire routes of the application (react-router-dom)
- Navbar
- Adding search bar fuzzy searching functionality
- Create new Post option
- UserProfile page
- Feed
- Queries to get all the pins from sanity
- Fetch category feed when category selected
- Conditional rendering if no pins found
- PinDetails
- Layout of the pinDetails on clicking a pin
- Showing Image, Title, About, Link, Category, Download button, PostedBy
- Adding comment section for all users
- Creating Pin
- Utility of Creating pin
- Upload Image url, title, about , destination, category
- Create Pin Button writes to sanity db and redirects to the homepage
- Pin
- Query image , title, description, tags, likes, comments, postedBy from sanity
- Attaching utils to the pin (delete, saved , url ) on hover
- Showing the user who posted it
- UserProfile
- Fetch the details of user
- Show all the created and save Posts
- Firebase Logout button
- Conditional rendering if no pins found
- SocialMediaButtons
- Layout of the social media buttons
- Share the URL To social media sites
- Spinner
- Showing the spinner component when isLoading is true
- Icons
- Email Me Icon, redirect to contact page
- index.js
- Having all the exports t once place
- Contact
- Showing Contact us page setup using EmailJS
- MasonryLayout
- Displaying all the pins in Masonry format
- Varying Vertical sizes
- QRCode
- Showing QR Code of current website
- Login using mobile
- Search
- Fuzzy search for posts
- Queries the rendered pins and returns pins matching title
Run Locally 🚀
Clone the project
git clone https://github.com/adarshanand67/ShareMe
Go to the frontend directory
cd shareme-frontend
Install dependencies
npm install
Start the server
npm run start
Current Problems :- 🔧
Future Improvements TODO :- 🔧
Easy Changes
Medium Changes
Advanced Changes
Feedback 📝
If you have any feedback, please reach out to us at 📫 adarsh.anand.20031@iitgoa.ac.in.
Contributing 🤝
Pull requests are welcome. For major changes, please open an issue first to discuss what you would like to change. Read the contributing guidelines before contributing.
Please make sure to update tests as appropriate.
Contributors ✨
Made with ❤️ by Awesome Contributors
License 📜
MIT
Authors 👨💻
Acknowledgements 🙏
Don't forget to ⭐ this repo
Building with the COMMUNITY for the COMMUNITY ❤️