{"id":20312708,"url":"https://github.com/prathameshdhande22/bloogo-app","last_synced_at":"2025-10-18T12:27:13.717Z","repository":{"id":182861604,"uuid":"667499016","full_name":"PrathameshDhande22/Bloogo-App","owner":"PrathameshDhande22","description":"Bloogo App created using Python's FastAPI and React JS as Frontend. Create your Blog, edit Blog, view Blog.","archived":false,"fork":false,"pushed_at":"2024-02-09T05:48:11.000Z","size":3902,"stargazers_count":2,"open_issues_count":0,"forks_count":2,"subscribers_count":1,"default_branch":"main","last_synced_at":"2024-11-14T18:07:09.884Z","etag":null,"topics":["blog","fastapi","jwt","mongodb","mongodb-atlas","mongoengine","mui","poetry","python3","reactjs","redux","tailwind","tailwindcss","vite","vitejs","webapp"],"latest_commit_sha":null,"homepage":"https://bloogo.vercel.app","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/PrathameshDhande22.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null}},"created_at":"2023-07-17T16:34:46.000Z","updated_at":"2024-06-29T14:53:39.000Z","dependencies_parsed_at":"2023-07-21T22:28:47.095Z","dependency_job_id":"c14291f7-494e-482f-8d84-a2025c15e554","html_url":"https://github.com/PrathameshDhande22/Bloogo-App","commit_stats":null,"previous_names":["prathameshdhande22/bloogo-app"],"tags_count":3,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PrathameshDhande22%2FBloogo-App","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PrathameshDhande22%2FBloogo-App/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PrathameshDhande22%2FBloogo-App/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PrathameshDhande22%2FBloogo-App/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/PrathameshDhande22","download_url":"https://codeload.github.com/PrathameshDhande22/Bloogo-App/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":233893191,"owners_count":18746708,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["blog","fastapi","jwt","mongodb","mongodb-atlas","mongoengine","mui","poetry","python3","reactjs","redux","tailwind","tailwindcss","vite","vitejs","webapp"],"created_at":"2024-11-14T18:07:15.929Z","updated_at":"2025-09-22T21:31:13.919Z","avatar_url":"https://github.com/PrathameshDhande22.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Bloogo APP\n\n![MongoDB](https://img.shields.io/badge/MongoDB-4EA94B?style=for-the-badge\u0026logo=mongodb\u0026logoColor=white)\n![Javascript](https://img.shields.io/badge/JavaScript-F7DF1E?style=for-the-badge\u0026logo=javascript\u0026logoColor=black)\n![Python](https://img.shields.io/badge/Python-3776AB?style=for-the-badge\u0026logo=python\u0026logoColor=white)\n![TailwindCSS](https://img.shields.io/badge/tailwindcss-%2338B2AC.svg?style=for-the-badge\u0026logo=tailwind-css\u0026logoColor=blue\u0026color=black)\n![CSS3](https://img.shields.io/badge/css3-%231572B6.svg?style=for-the-badge\u0026logo=css3\u0026logoColor=white)\n![FastAPI](https://img.shields.io/badge/FastAPI-005571?style=for-the-badge\u0026logo=fastapi)\n![React](https://img.shields.io/badge/react-%2320232a.svg?style=for-the-badge\u0026logo=react\u0026logoColor=%2361DAFB)\n![Redux](https://img.shields.io/badge/redux-%23593d88.svg?style=for-the-badge\u0026logo=redux\u0026logoColor=white)\n![React Router](https://img.shields.io/badge/React_Router-CA4245?style=for-the-badge\u0026logo=react-router\u0026logoColor=white)\n\nA Blog App for all Coders, Programmers, and other.\n\nA Bloogo app made using react js as frontend and FastAPI as backend, and Storing data in a MongoDB ulimately also known as FARM Stack APP.\n\n## Bloogo Features\n\n1. **Markdown Blogging:**\n\n   - _Description:_ Users can create and publish blog posts using Markdown syntax for rich and structured content.\n\n2. **Tagging System:**\n\n   - _Description:_ Bloggers can categorize their posts by adding tags, facilitating content organization.\n\n3. **Thumbnail Upload:**\n\n   - _Description:_ Users can upload custom thumbnails for their blog posts, enhancing visual appeal.\n\n4. **Advanced Login/Register System:**\n\n   - _Description:_ Robust user authentication system ensures secure login and registration processes.\n\n5. **Cloudinary Integration:**\n\n   - _Description:_ Images are stored and managed using Cloudinary, a cloud-based media management solution.\n\n6. **User Profile Image:**\n\n   - _Description:_ Users can upload and personalize their profile images.\n\n7. **Search Features:**\n\n   - _Description:_ Users can search for blogs based on various criteria, including content, author, and tags.\n\n8. **FastAPI for Automatic Error Handling:**\n\n   - _Description:_ Utilizing FastAPI library for automatic error handling, ensuring smooth and efficient error resolution.\n\n9. **JWT Verification:**\n\n   - _Description:_ JSON Web Token (JWT) verification is implemented for secure authentication and authorization.\n\n10. **Account Verification through Email:**\n    - _Description:_ Users undergo account verification through email, enhancing security and confirming valid user accounts.\n\n## Deployed Links\n\n[Bloogo APP](https://bloogo.vercel.app) Frontend\n\n[Bloogo API](https://bloogoapi.onrender.com) Backend\n\n## Used Technologies and Products\n\n1. [SMTPlib](https://docs.python.org/3/library/smtplib.html) for sending the email for account verification purpose.\n2. [logo.com](https://app.logo.com/) for Creating the Bloogo logo.\n3. [write.as](https://write.as/) Reference for creating the blog. Using The above website design.\n4. [Footer Design](https://preview.colorlib.com/theme/bft/bootstrap-footer-17/#) Footer Design has been taken from the above website.\n5. [Day.js](https://day.js.org/) Used for Formatting the Date recieved From backend.\n6. [React Markdown Viewer](https://uiwjs.github.io/react-markdown-preview/) For Viewing the blog post.\n7. [Animate.css](https://animate.style/) for Animating some components.\n8. [Formik](https://formik.org/) used for handling client side validation of form data.\n9. [yup](https://github.com/jquense/yup) used for creating the form schema that can be used with formik.\n10. [Material UI](https://mui.com/) Great UI Components for react, creating the readymade and coding free components.\n11. [React Icons](https://react-icons.github.io/react-icons/) Icons for using in various pages to make user Interaction more attractive.\n12. [React Toastify](https://fkhadra.github.io/react-toastify/introduction) For adding the Notification to alert the user about any changes made by him.\n13. [React Loader Spinner](https://mhnpd.github.io/react-loader-spinner/) Using this Library we added the loading components where the loading of data takes place.\n14. [Loading.io](https://loading.io/) Using these website created the Loading.gif for showing with the react loader spinner.\n15. [React Markdown Editor](https://uiwjs.github.io/react-md-editor/) Writing the blog post using these markdown components.\n16. [React Select](https://react-select.com/home), Select component with create in it.\n17. [Reading Time Estimator](https://www.npmjs.com/package/reading-time-estimator) Used for Read the whole blog and estimate the time to read it.\n18. [Error Page Reference](https://colorlib.com/etc/404/colorlib-error-404-3/) From the above website the error page design has been made.\n19. [moment.js](https://momentjs.com/) JS library for date utility for giving from how many hours or minutes have been over by uploading this blog.\n20. [animista.net](https://animista.net/) For providing the CSS Animations for the Hamburger menu component.\n21. [medium.com](https://medium.com) Search Page \u0026 Blog according to Tag Reference has been taken from Medium.com Website.\n\n## Timeline\n\n- **Day 1 - 17 July 2023**\n\n  - Project Intialize. 🗒️\n\n- **Day 2 - 18 July 2023**\n\n  - Gathering Information on how to integrate google login and selecting the correct database. 🔎\n  - Started working on Backend installed various library. 💻\n\n- **Day 3 - 19 July 2023**\n\n  - Started creating the api\n  - Created the Folder and Managing various file 📂\n\n- **Day 4 - 20 July 2023**\n\n  - Implemented Database and Models 📅\n  - Login,Register and Authorization Code ✅\n  - Email Verification Code 📧\n\n- **Day 5 - 21 July 2023**\n\n  - Completed Backend for Blog endpoint 💻\n  - Completed Backend for Tags endpoint 💻\n  - Completed Backend for Profile Endpoint 💻\n\n- **Day 6 - 22 July 2023**\n\n  - Implemented full backend only google login is remaining in it. ⌨️\n  - Documented the api backend. 📄\n  - Frontend Initialized. 🌐\n\n- **Day 7 - 23 July 2023**\n\n  - Initialized the tailwindcss. \u003cimg src=\"https://cdn.cdnlogo.com/logos/t/58/tailwind-css.svg\" height=10\u003e\n  - Server Side rendering to be done.\n\n- **Day 8 - 24 July 2023**\n\n  - Created the logo, Favicon for our website.\n\n- **Day 9 - 27 July 2023**\n\n  - Implemented Header and Home Page or Landing Page.\n  - Implemented Footer.\n\n- **Day 10 - 28 July 2023**\n\n  - Implemented About and Developer Page and modified some CSS constraints in Header and Footer.\n  - Applied the CORS Middleware to the Backend for successful communication with the frontend.\n  - Implemented Full Page Blog.\n\n- **Day 11 - 29 July 2023**\n\n  - Implemented the Login and signup page and integrated backend.\n  - Improved some Authentication in Frontend.\n\n- **Day 12 - 30 July 2023**\n\n  - Implemented Logout,Profile and Email Verification Pages.\n  - Implemented Protected Routes.\n  - Created Account on Cloudinary for image uploading and image resizing.\n  - Implemented Error Page 404 Not Found Page.\n\n- **Day 13 - 31 July 2023**\n\n  - Modified Update Endpoint of Backend.\n  - Added verify token without needing the token in Backend.\n  - Get Author profile with author related Blogs added in Backend.\n\n- **Day 14 - 1 August 2023**\n\n  - Modified Profile Avatar in Header.\n  - Integrated the backend with profile Page.\n\n- **Day 15 - 2 August 2023**\n\n  - Implemented the Profile Popover.\n  - Implemented Profile Page\n  - Forgot Password and change Password Page added.\n  - Blog Page Added.\n  - Working on Write Blog Page.\n\n- **Day 16 - 3 August 2023**\n\n  - Implemented Write Blog Page.\n  - Implemented API call for Write Blog Page.\n\n- **Day 17 - 4 August 2023**\n\n  - Optimized the Code for Frequently appearing Dialog Boxes.\n  - Fixed the Blog Thumbnail Not uploading.\n  - Reading Time Estimator and Uploaded the blogs in min,hours,day ago in Blog View Page.\n  - Fixed Jodit Editor for Various Toolbar.\n\n- **Day 18 - 5 August 2023**\n\n  - Fixed some bugs in Backend related to Date in blog.\n  - Implemented Dashboard page for login User.\n  - Delete and Edit button Added for each blog for the user who has created the blog.\n  - Public Profile page Implemented using which User's can view Bloogo Blog Author Profile.\n  - Fixed Some Issue related to Profile Picture in Profile Component\n  - Added the Share button to share the blog with various Social Media.\n  - Fixed Upload Button Issue in Upload Thumbnail in Create New Blog Page.\n\n- **Day 19 - 6 August 2023**\n\n  - Added Estimated Reading Time for each Blogcard\n  - Implemented Edit Page will full Performance Support\n  - Reduced the Words per minute for Estimate Reading Time\n  - Added SearchBar in the Header and Implemented Search Home Page.\n  - Implemented Recent Searches in the Search Home Page\n\n- **Day 20 - 7 August 2023**\n\n  - Implemented Search Page for Blog.\n  - Modification in Search page.\n  - Modification in Dashboard Page.\n  - Created the Place Holder for Blog Page.\n\n- **Day 21 - 8 August 2023**\n\n  - Implemented Blog Author Search Page.\n  - Implemented Profile cards to shown in Author Search Page.\n  - Simple Modification in Search Page.\n  - Updated Placeholder for Author Page.\n\n- **Day 22 - 9 August 2023**\n\n  - Improved Searching for Profiles in backend.\n  - Implemented Search Tag page.\n  - Implemented Tag Page.\n  - Implemented Full Frontend Now Ready to Host.\n  - Future Work or updates will be worked after availability of app.\n\n- **Day 23 - 10 August 2023**\n\n  - Implemented Full Page and optimized some images.\n  - Blog View has been modified.\n  - Project Completed.\n  - Deployed the Project.\n\n  **============= NEW UPDATE LOGS ==============**\n\n- **Day 24 - 06 February 2024**\n\n  - Researching for new Email Sender SMTP.\n  - Researching of New Editor for blog writing.\n\n- **Day 25 - 07 February 2024**\n\n  - Implemented the Email Sender SMTP with `smtplib` library of python.\n  - Loading component implemented in various Pages to minimize the pressure on backend.\n  - Improved functionality when the blog is deleted the whole page is being reloaded so removed the reloaded code.\n  - Implemented the New Markdown Editor for writing the blogs.\n  - Now the Images or thumbnails can be directly uploaded to Backend Fastapi integrated the cloudinary in the backend.\n  - Switched from client side image uploading to server side image uploading.\n  - Improved the experience with the tag and solved the issue related to selecting the tag.\n\n- **Day 26 - 08 February 2024**\n\n  - Improved the taglist edit blog experience.\n  - Improved the Profile Image uploading to the backend and frontend.\n  - Updated and user deleted blog Images deletion service Implemented for optimize the performance of the cloudinary service.\n  - Added the new Meta Tags to the frontend.\n  - Change of version from v1.0 to v1.5.0.\n  - Optimization of Code in the frontend Part.\n  - New Updates Implemented and completed the Project.\n  - Deployed The Project.\n\n## Bloogo App v1.5.0 Update Log\n\n#### Optimized Frontend and Rendering\n\n- Improved performance with optimized frontend and rendering for a smoother user experience.\n\n#### Shifted Uploading Images to Server Side\n\n- Enhanced security by moving image uploading from client-side to server-side.\n\n#### Added \"Please Wait\" Component for API Calls\n\n- Implemented a \"Please Wait\" component during API calls for login, signup, forgot password, and change password functionalities.\n\n#### Cloudinary Image Deletion Functionality\n\n- Users can now delete images from Cloudinary server to minimize storage.\n\n#### Removed setTimeout Function\n\n- Eliminated the use of `setTimeout` function from various pages for improved code efficiency.\n\n#### SMTPlib for Mail Sending\n\n- Utilized `smtplib` for sending emails, removing dependency on the brevo SMTP server.\n\n## Future Work/Updates\n\n1. Google Login\n2. Dark Mode Feature\n\n## Guide\n\n**Guide For running the project locally in your system.**\n\n#### Running the Backend\n\n1. Clone the Repository\n\n```\ngit clone https://github.com/PrathameshDhande22/Bloogo-App.git\n```\n\n2. Make Sure You have `python` installed in your system with `version =\u003e 3.10.3`\n\nGoto backend Folder.\n\n```\ncd backend\n```\n\n3. Simple command it will automatically create the virtual environment and install the packages.\n\n   **Note :** The Poetry package should be installed in our System before triggering the below commands.\n\n```\npoetry install\n```\n\nif any error comes google the error it will Solved.\n\n4. Create `.env` file\n\n```\nMONGODB_URI=Your Mongodb URI\nSECRET=Jwt secret\nEMAIL= Your Email addresss\nPASSWORD= Your email address password\nLINK=http://localhost:5173 of the frontend.\nCLOUD_NAME=cloudinary cloud name\nAPI_KEY=Cloudinary api key\nAPI_SECRET=Cloudinary api secret\nUPLOAD_PRESET=Cloudinary Upload preset\n```\n\n7. Run\n\n```\npython run.py\n```\n\n😃😃 Backend is Running Successfully in your System.\n\n#### Running the Frontend\n\n1. Navigate to Frontend Folder.\n\n```\ncd frontend\n```\n\n2. Create .env File in it which contains various Values.\n\n```\nVITE_BASE_API=backend running url\nVITE_CLOUD_NAME=cloudinary cloud name\n```\n\n3. Install the dependencies.\n\n```\nnpm install\n```\n\n4. Run the project.\n\n```\nnpm run dev\n```\n\n😃😃 The project setup is complete.\n\n#### In Case you attempted any error you can mail me on prathameshdhande534@gmail.com\n\n## Author : Prathamesh Dhande\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fprathameshdhande22%2Fbloogo-app","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fprathameshdhande22%2Fbloogo-app","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fprathameshdhande22%2Fbloogo-app/lists"}