Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/p-nelly/roadmap-personal-blog

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.
https://github.com/p-nelly/roadmap-personal-blog

authentication blog blog-engine blog-platform cms flask flask-login json json-storage markdown markdown-editor minimalist-design personal-blog python responsive-design static-site web-app

Last synced: about 1 month ago
JSON representation

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.

Awesome Lists containing this project

README

        



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](#overview)
- [ Features](#features)
- [ Project Structure](#project-structure)
- [ Project Index](#project-index)
- [ Getting Started](#getting-started)
- [ Prerequisites](#prerequisites)
- [ Installation](#installation)
- [ Usage](#usage)
- [ Testing](#testing)
- [ Project Roadmap](#project-roadmap)
- [ Contributing](#contributing)
- [ License](#license)
- [ Acknowledgments](#acknowledgments)

---

## 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

```sh
└── 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:
```sh
❯ git clone https://github.com/P-Nelly/roadmap-personal-blog
```

2. Navigate to the project directory:
```sh
❯ cd roadmap-personal-blog
```

3. Install the project dependencies:

```sh
❯ 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:

```sh
❯ 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:

```sh
❯ python -m pytest
```

---
## Project Roadmap

- [X] **`Task 1`**: Implement basic blog functionality with article management
- [X] **`Task 2`**: Add authentication system for admin access
- [X] **`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

- **💬 [Join the Discussions](https://github.com/P-Nelly/roadmap-personal-blog/discussions)**: Share your insights, provide feedback, or ask questions.
- **🐛 [Report Issues](https://github.com/P-Nelly/roadmap-personal-blog/issues)**: Submit bugs found or log feature requests for the `roadmap-personal-blog` project.
- **💡 [Submit Pull Requests](https://github.com/P-Nelly/roadmap-personal-blog/blob/master/CONTRIBUTING.md)**: Review open PRs, and submit your own PRs.

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.
```sh
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.
```sh
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.
```sh
git commit -m 'Implemented new feature x.'
```
6. **Push to github**: Push the changes to your forked repository.
```sh
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](https://choosealicense.com/licenses/mit/) License. For more details, refer to the [LICENSE](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

---