{"id":50737835,"url":"https://github.com/ali-haggag7/blog-pro-platform","last_synced_at":"2026-06-10T15:02:18.905Z","repository":{"id":338655421,"uuid":"1014898318","full_name":"Ali-Haggag7/Blog-Pro-Platform","owner":"Ali-Haggag7","description":"🔐 A secure MERN Stack CMS featuring Role-Based Access Control, JWT Auth, Nested Comments, and enterprise-grade security (Helmet \u0026 XSS-Clean).","archived":false,"fork":false,"pushed_at":"2026-02-28T02:09:39.000Z","size":7843,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"master","last_synced_at":"2026-02-28T04:56:31.555Z","etag":null,"topics":["blog-platform","cms","jwt-authentication","mern-stack","mongodb","nodejs","react","redux-toolkit","role-based-access","web-security"],"latest_commit_sha":null,"homepage":"https://blog-pro-platform.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/Ali-Haggag7.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,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-07-06T16:12:10.000Z","updated_at":"2026-02-28T02:09:42.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/Ali-Haggag7/Blog-Pro-Platform","commit_stats":null,"previous_names":["ali-haggag7/blog-pro-platform"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/Ali-Haggag7/Blog-Pro-Platform","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Ali-Haggag7%2FBlog-Pro-Platform","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Ali-Haggag7%2FBlog-Pro-Platform/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Ali-Haggag7%2FBlog-Pro-Platform/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Ali-Haggag7%2FBlog-Pro-Platform/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Ali-Haggag7","download_url":"https://codeload.github.com/Ali-Haggag7/Blog-Pro-Platform/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Ali-Haggag7%2FBlog-Pro-Platform/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34157453,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-10T02:00:07.152Z","response_time":89,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"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":["blog-platform","cms","jwt-authentication","mern-stack","mongodb","nodejs","react","redux-toolkit","role-based-access","web-security"],"created_at":"2026-06-10T15:02:17.556Z","updated_at":"2026-06-10T15:02:18.899Z","avatar_url":"https://github.com/Ali-Haggag7.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# 📝 Blog Pro - Professional Content Management System\n\n\u003e **Blog Pro** is a robust **Content Management System (CMS)** built with the MERN Stack. It features comprehensive role-based access control, real-time interactivity, and enterprise-grade security tailored for scalability.\n\n[![Blog Pro Preview](blog-home-light-mode.png)](https://Blog-Pro-Platform.vercel.app/)\n\n## ✨ Key Features\n\n### 1️⃣ Security \u0026 Performance (Backend) 🛡️\n- **Secure Authentication:** Robust **JWT** implementation with HTTP-Only cookies and password complexity enforcement via **Joi**.\n- **Protection Layers:** Integrated **Helmet** (Headers security), **XSS-Clean** (Sanitization), and **HPP** (Parameter Pollution protection).\n- **Rate Limiting:** Advanced protection against brute-force attacks and spam.\n- **Media Management:** Optimized cloud-based image storage using **Cloudinary**.\n\n### 2️⃣ User Experience (Frontend) 👤\n- **Interactive Community:** Nested comments system, real-time likes, and rich-text post creation.\n- **Profile Management:** Complete control with avatar uploads and a dynamic **Follow/Unfollow system**.\n- **Theme Customization:** Fully responsive UI with a built-in **Dark/Light Mode** toggle.\n\n### 3️⃣ Admin Capabilities ⚡\n- **Centralized Dashboard:** Full administrative control to manage Users, Posts, Categories, and Comments.\n- **Analytics \u0026 Insights:** Visualized platform statistics and user growth tracking.\n- **Role Management:** Strict role-based access control (RBAC) for Admins vs. Standard Users.\n\n---\n\n## 🛠️ Tech Stack\n\n| Domain | Technologies |\n| :--- | :--- |\n| **Frontend** | React.js, Redux Toolkit, React Router, Bootstrap, **Toastify** |\n| **Backend** | Node.js, Express.js, MongoDB (Mongoose) |\n| **Security** | **Helmet**, **XSS-Clean**, Express-Mongo-Sanitize, BcryptJS |\n| **Services** | **Cloudinary** (Storage), **Nodemailer** (Email Services) |\n\n---\n\n## 💻 Running Locally\n\n1. **Clone the repository**\n   ```bash\n   git clone [https://github.com/Ali-Haggag7/blog-pro.git](https://github.com/Ali-Haggag7/blog-pro.git)\n   cd blog-pro\n\n2. **Install Dependencies**\n```bash\n# Install Backend Dependencies\n  cd backend\n  npm install\n\n# Install Frontend Dependencies\n  cd ../frontend\n  npm install\n\n```\n3. **Environment Variables**\n```bash\n# Create a .env file in the backend directory and add your keys:\n  PORT=8000\n  MONGO_URI=your_mongodb_connection_string\n  NODE_ENV=development\n  JWT_SECRET=your_super_secret_key\n  APP_EMAIL_ADDRESS=your_email@gmail.com\n  APP_EMAIL_PASSWORD=your_app_password\n  CLOUDINARY_CLOUD_NAME=your_cloud_name\n  CLOUDINARY_API_KEY=your_api_key\n  CLOUDINARY_API_SECRET=your_api_secret\n  CLIENT_DOMAIN=http://localhost:3000\n\n```\n4. **Run the App**\n\n```bash\n# Run Backend (Open new terminal)\ncd backend\nnpm run dev\n\n```\n```bash\n# Run Frontend (Open separate terminal)\ncd frontend\nnpm start\n\n```\n---\n\n## 📄 License\nThis project is open source.\nCreated by Ali Haggag. © 2026 All rights reserved.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fali-haggag7%2Fblog-pro-platform","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fali-haggag7%2Fblog-pro-platform","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fali-haggag7%2Fblog-pro-platform/lists"}