Skip to content

A modern, minimalist blog platform built with Flask, featuring Markdown support, secure admin controls, and JSON-based storage. Perfect for developers seeking a lightweight, easy-to-deploy personal blog solution with clean UI and comprehensive test coverage.

License

Notifications You must be signed in to change notification settings

P-Nelly/roadmap-personal-blog

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ROADMAP-PERSONAL-BLOG

❯ A modern, minimalist blog platform built with Flask, featuring Markdown support and secure admin controls

license last-commit repo-top-language repo-language-count


Table of Contents


Overview

❯ 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.


Features

  • 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

Project Structure

└── 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

Project Index

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

Getting Started

Prerequisites

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

Installation

Install roadmap-personal-blog using one of the following methods:

Build from source:

  1. Clone the roadmap-personal-blog repository:
❯ git clone https://github.com/P-Nelly/roadmap-personal-blog
  1. Navigate to the project directory:
cd roadmap-personal-blog
  1. Install the project dependencies:
❯ python -m venv venv
❯ source venv/bin/activate  # On Windows: venv\Scripts\activate
❯ pip install -r requirements.txt

Usage

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

Testing

Run the test suite using the following command:

❯ python -m pytest

Project Roadmap

  • 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

Contributing

Contributing Guidelines
  1. Fork the Repository: Start by forking the project repository to your github account.
  2. Clone Locally: Clone the forked repository to your local machine using a git client.
    git clone https://github.com/P-Nelly/roadmap-personal-blog
  3. Create a New Branch: Always work on a new branch, giving it a descriptive name.
    git checkout -b new-feature-x
  4. Make Your Changes: Develop and test your changes locally.
  5. Commit Your Changes: Commit with a clear message describing your updates.
    git commit -m 'Implemented new feature x.'
  6. Push to github: Push the changes to your forked repository.
    git push origin new-feature-x
  7. Submit a Pull Request: Create a PR against the original project repository. Clearly describe the changes and their motivations.
  8. Review: Once your PR is reviewed and approved, it will be merged into the main branch. Congratulations on your contribution!
Contributor Graph


License

This project is protected under the MIT License. For more details, refer to the LICENSE file.


Acknowledgments

  • 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

About

A modern, minimalist blog platform built with Flask, featuring Markdown support, secure admin controls, and JSON-based storage. Perfect for developers seeking a lightweight, easy-to-deploy personal blog solution with clean UI and comprehensive test coverage.

Topics

Resources

License

Stars

Watchers

Forks