• Stars
    star
    174
  • Rank 219,104 (Top 5 %)
  • Language
    JavaScript
  • License
    MIT License
  • Created over 4 years ago
  • Updated almost 2 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

A Django blog app with features of a standard blogging platform.

django-bona-blog

A Django blog app with features of a standard blogging platform.

PyPI version GitHub license GitHub stars GitHub forks GitHub issues

Table of contents

General info

An Open-Source Django blogging app like Medium and Real Python. It has features of a standard blogging platform.

Standalone Project

There is a standalone version of this django package. You can get it from its GitHub Repo.

Screenshots

Authors Dashboard Page
Screenshot_2020-06-25 Bona Dashboard Home
Create Article Page
Screenshot_2020-06-26 Bona Dashboard Create Article(2)
Authors Profile Details Page
Screenshot_2020-06-25 Bona Dashboard Profile Details
Home Page List of Categories Page
Home Categories List
Category Articles List Page Author Articles List Page
Category Article List Author Articles
Article Detail Page
Screenshot_2020-11-22 BONA Django CKEditor installation Testing

Features

  • Mobile App Version
  • Dashboard for Authors
  • WYSIWYG Editor
  • Account Verification
  • Author Login
  • Author Password Reset
  • API for Clients
  • Category List
  • Category Articles List
  • New Category Submission
  • Related Articles
  • Comments
  • Articles Search
  • Article Social Media Share
  • Article Minute Read
  • Article Number of Words
  • Article Number of Views
  • Article Tags
  • Tag Related Articles
  • Markdown Support
  • Responsive on all devices
  • Pagination
  • Clean Code
  • 90% test coverage

Technologies

  • Python 3.6
  • Javascript
  • Jquery
  • Ajax
  • PrismJS
  • Django 3
  • HTML5
  • CSS3
  • Bootstrap 4
  • Ion Icons
  • Font awesome
  • CKEditor
  • SQLite
  • PostgreSQL

Setup

To run this app, you will need to follow these 3 steps:

1. Requirements

  • a Laptop

  • Text Editor or IDE (eg. vscode, PyCharm)

  • Python 3.6 +

  • Django 2.2+

2. Install Python and Pipenv

3. Local Setup and Running on Windows, Linux and Mac OS

a. Install package with pip or pipenv
  ```
      $ pip install django-bona-blog
   
  ```
  
               or 
  ```
      $ pipenv install django-bona-blog
   
  ```             
b. Add django_filter, ckeditor, taggit, crispy_forms and rest_framework to your INSTALLED_APPS in settings.py:
    INSTALLED_APPS = (
        ...
            'django_filters',
            'rest_framework',
            'taggit',
            'ckeditor',
            'ckeditor_uploader',
            'crispy_forms',
    )
c. Add CKEditor Configuration to settings.py:
    # CKEditor Settings
    CKEDITOR_UPLOAD_PATH = 'uploads/'
    CKEDITOR_IMAGE_BACKEND = "pillow"

    CKEDITOR_CONFIGS = {
        'default':
            {'toolbar': 'full',
             'width': 'auto',
             'extraPlugins': ','.join([
                 'codesnippet',
                 'youtube'
             ]),
             },
    }
d. Add blog to INSTALLED_APPS in settings.py for your Django project:
    INSTALLED_APPS = (
        ...
        'blog.apps.BlogConfig',
    )
e. Add blog.urls, tinmyce.urls and api.urls to urls.py of your project:

    from django.urls import include
    

    urlpatterns = [
      ...
      path('ckeditor/', include('ckeditor_uploader.urls')),
      path('blog/', include('blog.urls')),
      path('api/v1/', include('blog.api.v1.routers.routers')), 
  ]
f. Add configuration to serve static files in development to urls.py of your project:
     from django.conf.urls.static import static
     from django.conf import settings
    
 
     if settings.DEBUG:
        urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
        
g. Create blog database tables
   $ python manage.py migrate blog
h. Add dashboard configuration to your project settings.py:
   # Account Settings
     LOGIN_URL = '/account/login/'
     LOGIN_REDIRECT_URL = '/author/dashboard/'
     LOGOUT_REDIRECT_URL = '/account/logout/'
i. Add email configuration for account signup and password reset
   # Email Settings (Development)
     EMAIL_BACKEND = 'django.core.mail.backends.console.EmailBackend'



  # Email Settings (Production)
    EMAIL_BACKEND = ''
    EMAIL_HOST = ''
    EMAIL_HOST_USER = ''
    EMAIL_HOST_PASSWORD = ""
    EMAIL_PORT = 587
    EMAIL_USE_TLS = True
j. Add static files configuration for serving staticfiles

   
     STATICFILES_DIRS = [ os.path.join(BASE_DIR, "blog/static"),]
     STATIC_ROOT = os.path.join(BASE_DIR, 'staticfiles')
     STATICFILES_FINDERS = [
           "django.contrib.staticfiles.finders.FileSystemFinder",
           "django.contrib.staticfiles.finders.AppDirectoriesFinder",
        ]
k. Add media files configuration for serving media files
       # Media files (User uploaded images)
       MEDIA_URL = '/media/'
       MEDIA_ROOT = os.path.join(BASE_DIR, 'media')
l. Collect static files
    $ python manage.py collectstatic
Running Tests
   $ python manage.py test blog.tests

Status

Project is: done

Contact

Created by Williano - feel free to contact me!

License

You can check out the full license here

This project is licensed under the terms of the MIT license.

Contributing

  1. Fork it (https://github.com/Williano/django-bona-blog.git)
  2. Create your feature branch (git checkout -b feature/fooBar)
  3. Commit your changes (git commit -am 'Add some fooBar')
  4. Push to the branch (git push origin feature/fooBar)
  5. Create a new Pull Request

More Repositories

1

Final-Senior-Year-Project-

My College Final(Senior) Year Project
Python
239
star
2

Bona-Blog

An Open-Source Blogging Platform
JavaScript
50
star
3

Landing-Page

A simple Django Landing Page for organizations.
Python
32
star
4

Invoice-Management-System

An invoice management system built with Django
JavaScript
30
star
5

Bona-Blog-Mobile

An iOS and Android app for Bona Blog [an open source blogging website].
Dart
20
star
6

Web-Hosting-Website-Template

A web hosting website template built with HTML and CSS
CSS
10
star
7

Instagram-UI

A clone of the Instagram iOS app UI using Flutter
Dart
5
star
8

UI-Designs

Sample User Interfaces I designed using Figma
5
star
9

Flutter-Clean-Architecture

A project to practice clean architecture in Flutter
Dart
4
star
10

Williano

My GitHub Profile
4
star
11

Frontend-Development

Code for learning Frontend Development from scratch.
JavaScript
4
star
12

FoodPin

An iOS food app that allows users to save their favorite restaurants.
Swift
4
star
13

Python-Scripts

A list of python scripts I write to automate task and practice python
Python
3
star
14

williano.github.io

My portfolio webiste with all the relevant information about me
JavaScript
3
star
15

Flutter-Todo

A simple todo app built with Flutter
Dart
2
star
16

Djanog-Sandbox

A repository for practicing concepts in Django
Python
2
star
17

Job-Listing

An iOS and Android app for Jobs and Artisans listing.
Dart
2
star
18

Walmart-Assignment

Walmart Global Tech Software Engineering Homework Assignment
HTML
2
star
19

Data-Structures

Files and Projects from learning Data Structures with Python and C++
Python
2
star
20

C-plus-plus-practice

Files for practicing problem solving using C++
C++
2
star
21

Multi-Author-Blog

A multi author blog built with Django 2.0.
Python
2
star
22

Solved-Practice-Questions

Solved Practice Questions From Starting Out With Python by Tony Gaddis.
Python
2
star
23

Native-Cpp-Unity-Plugin

Native C/C++ library integration with Unity as Plugins
C#
1
star
24

snapchat-ui-clone

A clone of the Snapchat iOS user interface clone
Dart
1
star
25

Unity3d

Source code for game development, VR and AR using Unity3d and C#
C#
1
star
26

UI-Development

Source code for UI development projects built with Tailwind CSS, Vanilla CSS, and Bootstrap
CSS
1
star
27

Research-Lab-Website-HTML-Template

This is a simple static research lab website template which can be used by college students / professors.
HTML
1
star
28

Blog

Official Django Girls tutorial Blog. My first tutorial I used to learn Django.
Python
1
star
29

Quotes

A flutter application to learn how to create and display list of data.
Dart
1
star
30

Restaurant-iOS-App

An iOS Restaurant app built with Swift 4 that display the list of available items, allow users to add items to an order, display the current order and submit the order
Python
1
star
31

CV

A Portfolio Website built using Django.
CSS
1
star
32

Windows-Serial-Port-Communication

C++ Library for Windows Serial Port Communication
C++
1
star
33

Brew-Crew

A flutter app to keep brew preferences for people.
Dart
1
star
34

Data-Mining

Python scripts used for Data Mining
Python
1
star
35

Ninja-ID-Project

A project to learn Flutter
Dart
1
star
36

FreeCodeCamp-Responsive-Web-Design-Projects

Responsive Web Design Projects from FreeCodeCamp's Frontend Developer Course
HTML
1
star
37

Portfolio

An Portfolio template built with HTML and CSS.
CSS
1
star
38

DevOps

Files for learning DevOps tools: Docker, Kubernetes, CircleCI
Python
1
star
39

Modern-JavaScript

Repository for learning modern JavaScript
JavaScript
1
star