❯ A modern, minimalist blog platform built with Flask, featuring Markdown support and secure admin controls
- Overview
- Features
- Project Structure
- Getting Started
- Project Roadmap
- Contributing
- License
- Acknowledgments
❯ A Flask-based personal blog platform that allows you to write and publish articles with Markdown support. The application features a public-facing blog interface and a secure admin section for content management. Articles are stored as JSON files, making it lightweight and easy to deploy.
- Public article viewing with a clean, responsive interface
- Markdown support for rich content formatting
- Secure admin authentication system
- Article management (create, edit, delete)
- JSON-based storage for simplicity
- Modern UI with responsive design
- Comprehensive test coverage
└── roadmap-personal-blog/
├── LICENSE
├── README.md
├── app
│ ├── __init__.py
│ ├── articles
│ ├── auth.py
│ ├── routes.py
│ ├── static
│ └── templates
├── pytest.ini
├── requirements.txt
└── tests
├── conftest.py
├── test_articles.py
└── test_auth.py
ROADMAP-PERSONAL-BLOG/
__root__
pytest.ini ❯ Configuration file for pytest with coverage settings
requirements.txt ❯ Project dependencies and their versions
app
routes.py ❯ Main application routes and article management logic
auth.py ❯ Authentication system with login/logout functionality
articles
welcome.json ❯ Default welcome article for new installations
templates
article.html ❯ Template for displaying individual articles
login.html ❯ Admin login page template
index.html ❯ Home page template with article list
base.html ❯ Base template with common layout elements
admin
edit_article.html ❯ Template for creating and editing articles
dashboard.html ❯ Admin dashboard template for article management
Before getting started with roadmap-personal-blog, ensure your runtime environment meets the following requirements:
- Programming Language: Python 3.7+
- Package Manager: Pip
- Operating System: Linux, macOS, or Windows
Install roadmap-personal-blog using one of the following methods:
Build from source:
- Clone the roadmap-personal-blog repository:
❯ git clone https://github.com/P-Nelly/roadmap-personal-blog
- Navigate to the project directory:
❯ cd roadmap-personal-blog
- Install the project dependencies:
❯ python -m venv venv
❯ source venv/bin/activate # On Windows: venv\Scripts\activate
❯ pip install -r requirements.txt
Run roadmap-personal-blog using the following commands:
❯ export FLASK_APP=app
❯ export FLASK_ENV=development
❯ export SECRET_KEY=your-secret-key-here
❯ flask run
The blog will be available at http://localhost:5000
. Use these credentials for admin access:
- Username:
admin
- Password:
admin123
Run the test suite using the following command:
❯ python -m pytest
-
Task 1
:Implement basic blog functionality with article management -
Task 2
:Add authentication system for admin access -
Task 3
:Create responsive UI with modern design -
Task 4
: Add image upload support for articles -
Task 5
: Implement article categories and tags -
Task 6
: Add user comments system -
Task 7
: Implement search functionality -
Task 8
: Add RSS feed support
- 💬 Join the Discussions: Share your insights, provide feedback, or ask questions.
- 🐛 Report Issues: Submit bugs found or log feature requests for the
roadmap-personal-blog
project. - 💡 Submit Pull Requests: Review open PRs, and submit your own PRs.
Contributing Guidelines
- Fork the Repository: Start by forking the project repository to your github account.
- Clone Locally: Clone the forked repository to your local machine using a git client.
git clone https://github.com/P-Nelly/roadmap-personal-blog
- Create a New Branch: Always work on a new branch, giving it a descriptive name.
git checkout -b new-feature-x
- Make Your Changes: Develop and test your changes locally.
- Commit Your Changes: Commit with a clear message describing your updates.
git commit -m 'Implemented new feature x.'
- Push to github: Push the changes to your forked repository.
git push origin new-feature-x
- Submit a Pull Request: Create a PR against the original project repository. Clearly describe the changes and their motivations.
- Review: Once your PR is reviewed and approved, it will be merged into the main branch. Congratulations on your contribution!
This project is protected under the MIT License. For more details, refer to the LICENSE file.
- Flask framework and its contributors
- Python Markdown library
- Bootstrap for UI components
- Icons8 for the project icon
- The open-source community for inspiration and tools
- Build as a Roadmap Project: https://roadmap.sh/projects/personal-blog