{"id":15101549,"url":"https://github.com/sakr2000/blogproject-flask","last_synced_at":"2026-01-17T03:46:43.916Z","repository":{"id":237258209,"uuid":"794145166","full_name":"sakr2000/BlogProject-Flask","owner":"sakr2000","description":"This project is a professional blog website created using Python Flask, HTML, CSS, and Bootstrap. It features a modern and responsive design, allowing users to create, manage, and share blog posts easily.","archived":false,"fork":false,"pushed_at":"2024-05-08T07:14:19.000Z","size":57,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-04-05T11:13:45.456Z","etag":null,"topics":["blogging","bootstrap4","css3","flask","flask-login","flask-sqlalchemy","html5","jinja2-templates","pagination","pillow","python","sqlalchemy","sqlite","wtforms"],"latest_commit_sha":null,"homepage":"","language":"HTML","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/sakr2000.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}},"created_at":"2024-04-30T14:39:12.000Z","updated_at":"2024-05-08T07:14:23.000Z","dependencies_parsed_at":"2024-04-30T16:02:08.320Z","dependency_job_id":"0a4aeabb-445d-4187-8891-5fc67cf6eabd","html_url":"https://github.com/sakr2000/BlogProject-Flask","commit_stats":null,"previous_names":["sakr2000/blogproject-flask"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sakr2000%2FBlogProject-Flask","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sakr2000%2FBlogProject-Flask/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sakr2000%2FBlogProject-Flask/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sakr2000%2FBlogProject-Flask/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/sakr2000","download_url":"https://codeload.github.com/sakr2000/BlogProject-Flask/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247325696,"owners_count":20920714,"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":["blogging","bootstrap4","css3","flask","flask-login","flask-sqlalchemy","html5","jinja2-templates","pagination","pillow","python","sqlalchemy","sqlite","wtforms"],"created_at":"2024-09-25T18:25:16.993Z","updated_at":"2026-01-17T03:46:43.898Z","avatar_url":"https://github.com/sakr2000.png","language":"HTML","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Professional Blog Website\n\n## Table of Contents\n\n- [Overview](#overview)\n- [Key Features](#key-features)\n- [Technologies Used](#technologies-used)\n- [Video Demonstration](#video-demonstration)\n- [Installation and Usage](#installation-and-usage)\n- [Contributing](#contributing)\n- [Acknowledgements](#acknowledgements)\n- [Future Plans](#future-plans)\n\n## Overview\n\nThis project is a professional blog website created using Python Flask, HTML, CSS, and Bootstrap. It features a modern and responsive design, allowing users to create, manage, and share blog posts easily. The blog includes user authentication, form validation, profile picture upload, password reset via email, and database integration with SQLAlchemy. It provides a sleek and user-friendly platform for bloggers and readers.\n\n## Key Features\n\n- **Responsive Design:** Ensures a seamless user experience across devices.\n- **Form Validation:** Implemented using Flask-WTF for data integrity.\n- **User Authentication:** Secure login and registration with password hashing and Flask-Login Manager.\n- **User Profile Picture:** Supports upload with file type validation and large image compression.\n- **Post Management:** CRUD operations for creating, updating, and deleting blog posts.\n- **Pagination:** Allows for easier navigation of long lists of posts.\n- **Database Integration:** Uses SQLAlchemy models to interact with the SQLite database.\n- **Password Reset:** Secure password reset functionality via email with timed token for added security.\n- **Component-based Structure:** Organized using Flask blueprints for scalability.\n- **Custom Error Pages:** Personalized 404, 500, and other error pages for a polished user experience.\n- **Access Control:** Restrictions implemented for certain routes to manage user access.\n- **Configuration Class:** Custom configuration class for easy application setup.\n\n## Technologies Used\n\n![Flask](https://img.shields.io/badge/Flask-000000?style=for-the-badge\u0026logo=flask\u0026logoColor=white)\n![Python](https://img.shields.io/badge/Python-FFD43B?style=for-the-badge\u0026logo=python\u0026logoColor=blue)\n![HTML5](https://img.shields.io/badge/HTML5-E34F26?style=for-the-badge\u0026logo=html5\u0026logoColor=white)\n![CSS3](https://img.shields.io/badge/CSS3-1572B6?style=for-the-badge\u0026logo=css3\u0026logoColor=white)\n![Bootstrap](https://img.shields.io/badge/Bootstrap-563D7C?style=for-the-badge\u0026logo=bootstrap\u0026logoColor=white)\n![Sqlite](https://img.shields.io/badge/Sqlite-003B57?style=for-the-badge\u0026logo=sqlite\u0026logoColor=white)\n![PyCharm](https://img.shields.io/badge/PyCharm-000000.svg?\u0026style=for-the-badge\u0026logo=PyCharm\u0026logoColor=white)\n\n- Python\n- Flask\n- HTML\n- CSS\n- Jinja\n- Bootstrap\n- SQLite DB\n- PyCharm\n\n## Video Demonstration\n\n\u003cdiv align=\"center\"\u003e\n\n[![Watch the video](https://img.youtube.com/vi/nN33B2KiL40/0.jpg)](https://www.youtube.com/watch?v=nN33B2KiL40)\n\n\u003c/div\u003e\n\n## Installation and Usage\n\n1. **Clone the Repository:**\n\n```bash\ngit clone https://github.com/sakr2000/BlogProject-Flask.git\n```\n\n2. **Create and Activate a Virtual Environment:**\n\n- Windows:\n\n```bash\npython -m venv venv\nvenv\\Scripts\\activate\n```\n\n- MacOs/Linux:\n\n```bash\npython3 -m venv venv\nsource venv/bin/activate\n```\n\n3. **Install Dependencies:**\n\n```bash\npip install -r requirements.txt\n```\n\n4. **Set Up the Environment Variables:**\n\n- For Windows (Command Prompt):\n\n```bash\nsetx EMAIL_USER \"your-email@gmail.com\"\nsetx EMAIL_PASS \"your-email-password\"\nsetx SECRET_KEY \"your-secret-key\"\nsetx SQLALCHEMY_DATABASE_URI \"sqlite:///site.db\"\n```\n\n- For macOS/Linux (Terminal):\n\n```bash\nexport EMAIL_USER=\"your-email@gmail.com\"\nexport EMAIL_PASS=\"your-email-password\"\nexport SECRET_KEY=\"your-secret-key\"\nexport SQLALCHEMY_DATABASE_URI=\"sqlite:///site.db\"\n```\n\n5. **Set Up the Database:** Run the following command to create the SQLite database:\n\n```bash\npython db_create.py\n```\n\n6. **Run the Application:**\n\n```bash\npython run.py\n```\n\n7. **Access the Website:** Open `http://localhost:5000` in your web browser.\n\n## Contributing\n\nWe welcome contributions to improve the project. To contribute, please follow these steps:\n\n1. Fork the repository\n2. Create a new branch (`git checkout -b feature`)\n3. Make changes and commit (`git commit -am 'Add new feature'`)\n4. Push to the branch (`git push origin feature`)\n5. Create a pull request\n\n## Acknowledgements\n\nSpecial thanks to [Corey Schafer](https://www.youtube.com/user/schafer5) for his helpful tutorial videos on Flask and web development, which were instrumental in the creation of this project.\n\n## Future Plans\n\n- Implement search and filtration functionality for posts.\n- Enhance the UI with more modern design elements.\n- Improve security measures further, such as implementing CSRF protection.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsakr2000%2Fblogproject-flask","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsakr2000%2Fblogproject-flask","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsakr2000%2Fblogproject-flask/lists"}