{"id":34787832,"url":"https://github.com/aloukikjoshi/commonminds","last_synced_at":"2026-04-08T23:33:25.489Z","repository":{"id":290505142,"uuid":"961422981","full_name":"aloukikjoshi/commonminds","owner":"aloukikjoshi","description":"CommonMinds is a modern collaborative blogging platform built with React, Vite, Tailwind CSS, and FastAPI. Create accounts, share posts, and engage with a thriving community through a seamless, responsive interface.","archived":false,"fork":false,"pushed_at":"2025-12-15T19:33:24.000Z","size":56113,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-12-26T20:51:09.461Z","etag":null,"topics":["blogging-platform","fastapi","python","react","social-platform","tailwindcss","vite"],"latest_commit_sha":null,"homepage":"https://commonnminds.vercel.app/","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/aloukikjoshi.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","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,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2025-04-06T13:47:59.000Z","updated_at":"2025-12-15T19:33:30.000Z","dependencies_parsed_at":"2025-04-29T07:30:10.519Z","dependency_job_id":"e7155fc7-2e0c-44b2-b651-b1f3936e9cd2","html_url":"https://github.com/aloukikjoshi/commonminds","commit_stats":null,"previous_names":["aloukikjoshi/blogi"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/aloukikjoshi/commonminds","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aloukikjoshi%2Fcommonminds","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aloukikjoshi%2Fcommonminds/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aloukikjoshi%2Fcommonminds/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aloukikjoshi%2Fcommonminds/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/aloukikjoshi","download_url":"https://codeload.github.com/aloukikjoshi/commonminds/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aloukikjoshi%2Fcommonminds/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31579055,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-08T14:31:17.711Z","status":"ssl_error","status_checked_at":"2026-04-08T14:31:17.202Z","response_time":54,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"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":["blogging-platform","fastapi","python","react","social-platform","tailwindcss","vite"],"created_at":"2025-12-25T09:33:25.917Z","updated_at":"2026-04-08T23:33:25.472Z","avatar_url":"https://github.com/aloukikjoshi.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# 🌟 commonminds\n\ncommonminds is a modern blogging platform built to help writers share their stories with the world. ✍️  \n[Live Demo 🌐](https://www.commonminds.vercel.app)\n\n---\n\n## 📖 Table of Contents\n\n- [✨ Overview](#-overview)\n- [🛠️ Tech Stack](#-tech-stack)\n- [🚀 Features and Functionalities](#-features-and-functionalities)\n- [⚙️ Installation](#-installation)\n- [📂 Directory Structure](#-directory-structure)\n- [🏃 Running the Project](#-running-the-project)\n- [🔧 Configuration](#-configuration)\n- [🖥️ Running the Project Locally](#-running-the-project-locally)\n- [🌐 Deployment](#-deployment)\n- [⚡ Challenges and Solutions](#-challenges-and-solutions)\n- [📚 Additional Information](#-additional-information)\n- [💌 Support](#-support)\n\n---\n\n## ✨ Overview\n\ncommonminds is a full-stack web application designed to provide a seamless blogging experience. It offers:  \n- 🔐 **User registration and authentication**  \n- 📝 **Create, edit, and delete blog posts**  \n- 🔍 **Explore posts with pagination**  \n- 📱 **Responsive design for all devices**  \n- 🎨 **Modern UI with React and Tailwind CSS**\n\n---\n\n## 🛠️ Tech Stack\n\n### **Frontend**  \n- ⚛️ React (with TypeScript)  \n- ⚡ Vite for bundling  \n- 🧭 React Router for navigation  \n- 🎨 Tailwind CSS for styling  \n- 🧩 Radix UI for accessible components  \n- 📦 Additional libraries: `react-query`, `lucide-react`, etc.\n\n### **Backend**  \n- 🚀 FastAPI for the REST API  \n- 🗄️ SQLAlchemy for ORM  \n- 🐘 PostgreSQL as the database  \n- ✅ Pydantic for data validation  \n\n### **Other Tools**  \n- 🌐 Native Fetch API for HTTP requests  \n- 🛠️ Git for version control  \n\n---\n\n## 🚀 Features and Functionalities\n\n- **User Management:**  \n  🔑 Register, log in, and manage profiles.  \n\n- **Post Management:**  \n  📝 Create, edit, delete posts, and manage tags.  \n\n- **Responsive Design:**  \n  📱 Optimized for both desktop and mobile.   \n\n- **Rich UI Elements:**  \n  🎛️ Accessible components like modals, tooltips, and toast notifications.\n\n---\n\n## 🌐 Deployment\n\ncommonminds is fully deployed online for a seamless experience:  \n- **Frontend \u0026 Backend:** Deployed on [Vercel](https://vercel.com/).  \n- **Database:** Hosted on **Neon DB** for reliable and scalable data storage. \n\n---\n\n## ⚡ Challenges and Solutions\n\n### **Handling CORS Origins Errors**\n\n**Challenge:**  \nDuring development, the application encountered Cross-Origin Resource Sharing (CORS) errors when the frontend tried to communicate with the backend API. This prevented the client-side application from making successful API requests, resulting in blocked network calls and failed data fetching.\n\n**Why It Occurred:**  \nCORS errors occur when a web application running on one domain (origin) attempts to make requests to a server on a different domain. In this project:\n- The **frontend** was running on `http://localhost:5173` during local development and `https://commonminds.vercel.app` in production\n- The **backend API** was running on a separate domain/port (`http://localhost:8000` locally and Vercel deployment URL in production)\n- By default, browsers block cross-origin requests for security reasons unless the server explicitly allows them\n\n**Solution Implemented:**  \nThe issue was resolved by configuring FastAPI's CORS middleware to explicitly allow requests from trusted origins. In the backend's `main.py` file, the following configuration was added:\n\n```python\nfrom fastapi.middleware.cors import CORSMiddleware\n\n# CORS configuration\norigins = [\n    \"https://commonminds.vercel.app\",\n    \"http://localhost:5173\",\n    \"http://localhost:8000\",\n]\n\n# Enable CORS\napp.add_middleware(\n    CORSMiddleware,\n    allow_origins=origins,\n    allow_credentials=True,\n    allow_methods=[\"*\"],\n    allow_headers=[\"*\"],\n)\n```\n\n**Technical Details:**\n- `allow_origins`: Specifies the list of allowed origins (domains) that can make requests to the API\n- `allow_credentials`: Enables sending cookies and authentication credentials with cross-origin requests\n- `allow_methods=[\"*\"]`: Allows all HTTP methods (GET, POST, PUT, DELETE, etc.)\n- `allow_headers=[\"*\"]`: Allows all HTTP headers in requests\n\nThis configuration ensures smooth communication between the frontend and backend in both development and production environments while maintaining security by only allowing requests from specified trusted origins.\n\n---\n\n## 💌 Support\n\nIf you encounter any issues or have questions, feel free to reach out:  \n📧 **Email:** aloukikjoshi@gmail.com\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Faloukikjoshi%2Fcommonminds","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Faloukikjoshi%2Fcommonminds","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Faloukikjoshi%2Fcommonminds/lists"}