{"id":15013585,"url":"https://github.com/kientech/tech-blog","last_synced_at":"2025-03-12T22:44:11.538Z","repository":{"id":255462543,"uuid":"852096879","full_name":"kientech/Tech-Blog","owner":"kientech","description":"MEAN Tech Blog is a full-stack blogging platform built using the MEAN stack (MongoDB, Express.js, Angular, and Node.js). It allows users to create, manage, and interact with blog posts while implementing authentication and authorization mechanisms. Additionally, the platform supports powerful search and filtering features to enhance user experience","archived":false,"fork":false,"pushed_at":"2024-10-27T22:45:36.000Z","size":2188,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-03-12T22:44:03.785Z","etag":null,"topics":["express","jwt","mongodb","nodejs","postman","reactjs"],"latest_commit_sha":null,"homepage":"","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/kientech.png","metadata":{"files":{"readme":null,"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}},"created_at":"2024-09-04T08:09:54.000Z","updated_at":"2024-10-27T22:45:40.000Z","dependencies_parsed_at":"2024-09-05T14:53:31.517Z","dependency_job_id":"bb2b8ec6-d419-479c-9878-92a61b8f24ca","html_url":"https://github.com/kientech/Tech-Blog","commit_stats":null,"previous_names":["kientech/tech-blog"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kientech%2FTech-Blog","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kientech%2FTech-Blog/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kientech%2FTech-Blog/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kientech%2FTech-Blog/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/kientech","download_url":"https://codeload.github.com/kientech/Tech-Blog/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243307334,"owners_count":20270256,"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":["express","jwt","mongodb","nodejs","postman","reactjs"],"created_at":"2024-09-24T19:44:29.240Z","updated_at":"2025-03-12T22:44:11.518Z","avatar_url":"https://github.com/kientech.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# [MERN] Tech Blog - Kien Tech\n\n## Description\n\nMEAN Tech Blog is a full-stack blogging platform built using the MEAN stack (MongoDB, Express.js, Angular, and Node.js). It allows users to create, manage, and interact with blog posts while implementing authentication and authorization mechanisms. Additionally, the platform supports powerful search and filtering features to enhance user experience.\n\n## Features\n\n### 1. Authentication\n- Users can register and log in to the platform using their credentials.\n- Passwords are securely hashed using bcrypt.\n- JSON Web Tokens (JWT) are used for secure session handling.\n  \n### 2. Authorization\n- Role-based access control (RBAC) ensures only authorized users can perform specific actions.\n- **Admin** role has access to manage all blogs and users.\n- **Regular users** can create, read, update, and delete their own blogs.\n  \n### 3. CRUD Blog\n- **Create**: Users can write and publish new blog posts.\n- **Read**: Anyone can view blog posts.\n- **Update**: Authors can update their own blog posts.\n- **Delete**: Authors can delete their own blog posts.\n  \n### 4. Blog Management\n- Admins can manage all users' blogs, including editing and deleting inappropriate content.\n- Admin dashboard for viewing and managing all blogs and users.\n\n### 5. Search and Filter\n- Search for blog posts using keywords in titles, content, or tags.\n- Filter blogs by categories, authors, or publication date.\n  \n### 6. Additional Features\n- Pagination for blog lists.\n- Rich text editor for writing and editing blog content.\n- Blog post views tracking and popular blog post section.\n- User profile management with the ability to update personal details.\n\n## Tech Stack\n\n- **Frontend**: ReactJs\n- **Backend**: Node.js, Express.js\n- **Database**: MongoDB\n- **Authentication**: JSON Web Token (JWT)\n- **Styling**: Tailwind CSS\n\n## Installation\n\n1. Clone the repository:\n   ```bash\n   git clone https://github.com/kientech/mean-tech-blog.git\n   cd mean-tech-blog\n   ```\n\n2. Install server dependencies:\n   ```bash\n   cd backend\n   npm install\n   ```\n\n3. Install client dependencies:\n   ```bash\n   cd frontend\n   npm install\n   ```\n\n4. Set up environment variables in the `backend/.env` file:\n   ```bash\n   # MongoDB URL\n   MONGO_URI=your_mongo_database_uri\n\n   # JWT Secret\n   JWT_SECRET=your_jwt_secret\n\n   # Port\n   PORT=5000\n   ```\n\n5. Start the backend server:\n   ```bash\n   cd backend\n   npm run start\n   ```\n\n6. Start the frontend Angular application:\n   ```bash\n   cd frontend\n   npm run start\n   ```\n\n7. Navigate to `http://localhost:4200` to start using the application.\n\n## Usage\n\n1. **Register**: Create a new account by signing up.\n2. **Login**: Use your credentials to log in to your account.\n3. **Create a Blog**: Start writing a new blog post from the dashboard.\n4. **Manage Blogs**: View, edit, or delete your blogs. Admins can manage all blogs.\n5. **Search and Filter**: Easily find blogs using the search and filter options.\n6. **Admin Dashboard**: Admin users can manage all content and users.\n\n## License\n\nThis project is licensed under the MIT License. See the [LICENSE](./LICENSE) file for details. ","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkientech%2Ftech-blog","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fkientech%2Ftech-blog","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkientech%2Ftech-blog/lists"}