ClassifiedEngine

A complete, open-source, full-featured, fully customizable classified portal written in asp.net core framework for building advance classified ad-listing solution for existing or stand-alone application.

Overview

It is a complete, fully dynamic solution with all basic and advance features that can help you build highly scalable, feature rich, classified ad-listing solution for existing or stand-alone application.

It can be used for specific location or country or can be used for whole world.

It have built-in support for AWS Cloud for storing and streaming media files securely and without effecting your website or hosting server performance.

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

Features Overview

List of main features of ClassifiedEngine.
Membership

Membership

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

Ad Listings

Ad Listings

It is the core functionality of this product. Full featured ad-listings supported with dynamically controlled attributes, settings, various attribute templates for various type of listings, premium, featured, expiry, pricing and other advance options

Agencies

Agencies

It include support for agency profiles with advance controls on ads and other settings.

Dynamic Attributes

Dynamic Attributes

It support advance dynamic attribute tool that can help site administrator to manage different templates for different types of ad-listings e.g real-estate, pets, furnitures, jobs etc. It support both ad-listings and agency attributes

Payment Processing

Payment Processing

It support payment processing for premium, features ad-listings.

MY ACCOUNT

MY ACCOUNT

Advance my-account application (Angular based) that can allow users to manage your ads, order reports, profile, settings and configurations.

SOCIAL PROFILES

SOCIAL PROFILES

Support public profiles for agencies and users and allow other users to browse agencies or users public ad-listings and other information.

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.

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.

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

Provide advance searching and filtering tool that allow user to search ads and agencies in real-time.

Sitemaps

Sitemaps

It support dynamically generated sitemaps from ad-listings, agencies, pages, categories, tags etc, that can be easily submitted to search engines to index your data and pages fastly.

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 ad listings report, revenue report etc

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.

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.

User Attributes

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

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/ads/partials/_CategoryList.cshtml", new CategoryListViewModel_v2()
{
        QueryOptions = new CategoryEntity()
        {
              type = (int)CategoryBLL.Types.Classified,
              ispublic = true,
              iscache = true,
              pagesize = 6,
              order = "priority desc",
        },
        ListObject = new ListItems()
        {
              ListType = ListType.Grid,
              ColWidth = "col-md-6",
         },
         shortList = true,
         Path = "ads/", // category url path
         NoRecordFoundText = "No Record Found!"
})

Integrate Classified Ad Listing

@await Html.PartialAsync("~/views/ads/partials/_List_SM_01.cshtml", new Jugnoon.Classified.Models.ClassifiedListViewModel()
{
        BrowseText = "Browse All",
        BrowseUrl = "/ads",
        HeadingTitle = "Recent Ads",
        NoRecordFoundText = "No Ads Found!",
        ListObject = new Jugnoon.Scripts.ListItems()
        {             
             ListType = ListType.List
         },
         QueryOptions = new Jugnoon.Ads.AdsEntity()
         {
              order = "ads.created_at desc",
              ispublic = true,
              iscache = true, // toggle cache on | off
              isfeatured = FeaturedTypes.All,
              pagesize = 15
          }
})

Ads Listing with Pagination Model Initialization

 var ListEntity = new ClassifiedListViewModel()
{
       isListStatus = false,
       QueryOptions = new ClassifiedEntity()
       {
             pagenumber = (int)pagenumber,
             term = "",
             iscache = true,
             ispublic = true,
             pagesize = 10,
             isfeatured = FeaturedTypes.All,
             datefilter = DateFilter.AllTime,
             order = "ad.created_at desc",
       },
       ListObject = new ListItems()
       {
              ListType = ListType.List, // 0: grid 1: list
       },
       HeadingTitle = "Recently Posted Ads",
       DefaultUrl = "/ads",
       PaginationUrl = "/ads/page/[p]/",
       NoRecordFoundText = "No Ads Found!",
};
ListEntity.TotalRecords = await ClassifiedBLL.Count(_context, ListEntity.QueryOptions);
if (ListEntity.TotalRecords > 0)
     ListEntity.DataList = await ClassifiedBLL.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 ClassifiedEngine 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.