BlogEngine

A complete, open source Blogging Script for ASP.NET Core Platform

Overview

BlogEngine is a complete blogging, article posting or news portal script that can allow you to build highly professional, scalable, feature rich blogging, news or article posting application for existing or stand-alone application using ASP.NET Core Platform.

Currently built with ASP.NET Core 3.1 + Angular 8.2 + Bootstrap 4.4.1

Features Overview

List of main features of BlogEngine.
Membership

Membership

Extended ASP.NET Identity Module that can allow users to create account, login, manage account, update profile, change password, email etc

Blog

Blog

Allow user or site administrator to publish blogs or articles with support of text, sliders, videos etc. It can be easily customize or extend to meet with your needs

MY ACCOUNT

MY ACCOUNT

Advance my-account application (Angular based) that can allow users to manage own blogs, articles, profile, settings and configurations.

SOCIAL PROFILES

SOCIAL PROFILES

Allow users to visit each other public profiles and browse user public contents, blogs posts and articles.

CONTROL PANEL

CONTROL PANEL

Advance control panel (single page latest angular based) that can help site administrator to manage website settings, configurations, contents, users, reports etc.

Cloud Enabled

Cloud Enabled

Having built-in support and settings for managing and streaming media (photos, videos etc) files within AWS Cloud Platform.

Configurations

Configurations

Support advance configuration section that can allow you configure almost every available features on the fly without making changes in code.

Installation

Installation

Single step easy installation module that can help you easily configure database, default admin user, initialize application with default settings to make your application ready to use.

MULTIPLE LANGUAGES

MULTIPLE LANGUAGES

Support managing multiple ui cultures, configure your default language and allow multiple language options for user to choose from.

Categories

Categories

It support advance category managing module that can allow you to manage unlimited categories with unlimited hierarchy and separate it for each type of contents.

Labels

Labels

It support labeling or tagging articles, blogs with one or more labels or tags. Also have advance tag cloud management tool to manage labels, group labels by priority etc

Advertisement

Advertisement

It support managing advertisement (e.g Adsense Script) from control panel for different types of blocks that display / render ads on different sections and pages.

Advance Search

Advance Search

Angular based real time search module that can allow users to search posted contents, blogs, articles and more.

Sitemaps

Sitemaps

It support dynamically generated sitemaps from post blogs, articles, pages, categories, tags etc, that can be easily submitted to search engines to index your data fastly.

RSS Feeds

RSS Feeds

It support generating both RSS / ATOM feeds from posted blogs and articles.

Mail Templates

Mail Templates

It support advance mail template tool that can help you manage and customize mail templates from control panel.

Reports

Reports

It include advance reporting module that can help site administrator to view different type of reports e.g display blog posted trends monthly bases for current year.

Abuse Report

Abuse Report

It include abuse / spam reporting functionality and management module in control panel that can help administrator to review and take action on reports sent from website.

Comments

Comments

It support multiple options for posting comments on blog posts or articles including custom comment app, disqus app, facebook comment app or can disable comment if not needed or replace it with your own.

Error Log

Error Log

It include advance error logging module, that can log almost every type of error occurs while user browsing the site and report to site administrator for review.

Dictionary

Dictionary

It include dictionary module that can allow administrator to manage restricted usernames and black listed word that later used by screening script to prevent website from contents what may violate its terms of use.

Dynamic Attributes

Dynamic Attributes

It include advance dynamic profile attribute management tool that can help site administrator to adjust user profile attributes from control panel without making changes in code.

Block Ip

Block Ip

It include optional module that can allow site administrator to manage, block ip-address to access and use website.

Archive

Archive

It support optional feature that can allow website to generate archive list to group or archive blog posts based on month, year.

Root Pages

Root Pages

Advance single routing and friendly url logic designed to make almost every page url act as root url without using separate controllers / actions.

Code Example

A very clean and professional coding architecture has been adopted that we developed in years of effort to make customization process very easy and even a inexperience programmer can easy work and customize solution according to their needs. Here are some examples of usage

Integrate Category Listing

@await Html.PartialAsync("~/Views/blogs/partials/_CategoryList.cshtml", new CategoryListViewModel_v2()
{
        QueryOptions = new CategoryEntity()
        {
              type = (int)CategoryBLL.Types.Blogs,
              ispublic = true,
              iscache = true,
              pagesize = 6,
              order = "priority desc",
        },
        ListObject = new ListItems()
        {
              ListType = ListType.Grid,
              ColWidth = "col-md-6",
         },
         shortList = true,
         Path = "blogs/", // category url path
         NoRecordFoundText = "No Record Found!"
})

Integrate Article Listing

@await Html.PartialAsync("~/views/blogs/partials/_List_SM_01.cshtml", new Jugnoon.Blogs.Models.BlogListViewModel()
{
        BrowseText = "Browse All",
        BrowseUrl = "/blogs",
        HeadingTitle = "Recent Articles",
        NoRecordFoundText = "No Articles Found!",
        ListObject = new Jugnoon.Scripts.ListItems()
        {
             showDetail = false,
             showUser = true,
             showDate = true,
             ListType = ListType.List
         },
         QueryOptions = new Jugnoon.Blogs.BlogEntity()
         {
              order = "blog.created_at desc",
              ispublic = true,
              iscache = true, // toggle cache on | off
              isfeatured = FeaturedTypes.All,
              pagesize = 15
          }
})

Article Listing with Pagination Model Initialization

 var ListEntity = new BlogListViewModel()
{
       isListStatus = false,
       QueryOptions = new BlogEntity()
       {
             pagenumber = (int)pagenumber,
             term = "",
             iscache = true,
             ispublic = true,
             pagesize = 10,
             isfeatured = FeaturedTypes.All,
             datefilter = DateFilter.AllTime,
             order = "blog.created_at desc",
       },
       ListObject = new ListItems()
       {
              ListType = ListType.List, // 0: grid 1: list
       },
       HeadingTitle = "Recently Posted Articles",
       DefaultUrl = "/blogs",
       PaginationUrl = "/blogs/page/[p]/",
       NoRecordFoundText = "No Articles Found!",
};
ListEntity.TotalRecords = await BlogsBLL.Count(_context, ListEntity.QueryOptions);
if (ListEntity.TotalRecords > 0)
     ListEntity.DataList = await BlogsBLL.LoadItems(_context, ListEntity.QueryOptions);

Angular Reactive Form Attributes

// Text Box Control
controls.push(
      new Controls.Textbox({
         key: "firstname",
         label: "First Name",
         placeholder: "Enter first name",
         value: "",
         colsize: "col-md-12",
         required: true,
         helpblock: "",
         order: 0
      })
);

// Dropdown Control
new Controls.Dropdown({
      key: "rating_option",
      label: "Rating Options",
      required: true,
      value: entity.rating_option.toString(),
      options: [
            {
              key: 0,
              value: "Like / Dislike"
            },
            {
              key: 1,
              value: "Five Star"
            },
            {
              key: 2,
              value: "Disabled"
            }
        ],
        helpblock:
           "Setup rating option for contents 0: five star, 1: like / dislike, 2: disable rating",
        order: 19
    })
);

// Rich Text Editor Control
controls.push(
      new Controls.TinyMyceEditor({
      key: "contents",
      label: "Contents",
      value: entity.contents,
      tinymiceOptions: this.coreService.prepareInitAdvacneEditorSettings(),
      required: true,
      order: 6
  })
);

// Image Cropper Control
controls.push(
      new Controls.ImageCropper({
          key: "picturename",
          label: "",
          value: entity.picturename,
          required: false,
          cropperOptions: cropperOptions,
          helpblock: "",
          order: 9
     })
);

Similarly lots of more pre-built reactive form controls with validations with ability to add your own. That can help you build complex applications or features on the fly.

Frequently Asked Questions

What is Licensing Terms?

Core BlogEngine script is released under MIT License and freely to use, extend & customize.

What type of support available for this product?

We provide knowledge base functionality that can be utilized by user, if there is any query or report any issue. We will response within hour to maximum of 24 hour. There is no email, phone, etc suport available.