Developer Guide

Your In-Depth Guide to Effective Coding

Developer Guide

Welcome to the Developer Guide. This guide provides comprehensive insights into the architecture, project structure, and best practices for developing within our application. This guide aims to empower developers by offering a clear understanding of the application's structure and functionality. Developers can expect to gain valuable insights into the technologies employed, best practices, and efficient troubleshooting techniques.

Development Environment Setup:

IDE:
  • Visual Studio 2022 installed and configured.
  • MS SQL Server Management Studio for database management.
  • C# Programming Language support integrated into the development environment.
  • Operating System: Windows 10.
IDE Settings and Configurations:
  • Ensure the ASP.NET Core SDK is installed.
  • Familiarity with the .NET Core runtime.
Database:
  • Microsoft SQL Server Database 2019 or above installed and properly configured.
Package Management:
  • Utilize NuGet package manager for streamlined handling of project dependencies.
Version Control:
  • Version control can be managed using either Microsoft Team Foundation Server or Git.
  • Familiarity with basic Git commands is essential.
  • If collaborating, ensure there is a GitHub or GitLab account.
Web Technologies:
  • Solid understanding of web technologies, including:
    • HTML
    • CSS
    • jQuery
    • JavaScript
    • Ajax
  • Familiarity with Razor Pages for creating dynamic web pages.
Dependency Injection:

The Dependencies folder contains fundamental .NET Core dependencies, and it integrates several external APIs and tools, including:

  • Google API for address location.
  • Firebase for SMS.
  • Firebase, Azure Blob Storage, or Amazon Cloud for image storage (user-selectable).
  • Summer Note for HTML editing.
  • Grapes.js for HTML editing.
  • PayPal SDK for payment processing.
  • RestSharp for REST API calls.
  • Serilog for logging.
  • Device Detector for device information.
  • ZXING.net for barcode generation.
  • Proficient understanding and implementation of Dependency Injection in ASP.NET Core.
Properties

The Properties folder holds publish profiles for version releases. Additionally, it contains the launchsettings.json file, specifying launch profiles for local development:

WWWroot

The WWWroot folder comprises various subfolders:

  • admin-assets: Contains CSS, fonts, and JS files for the admin panel.
  • avatar: Stores images for user avatar selection.
  • cdn: Allows dynamic image storage locally.
  • countryflags: Holds country flags.
  • css: Contains main CSS files.
  • editor: Stores Grapes.js CSS, images, and JS files.
  • fonts: Houses all font files.
  • images: Stores general images and icons.
  • invoice: Temporarily stores generated invoices.
  • js: Contains all project JS files.
  • log: Stores logs for any generated errors.
  • templates: Holds email and HTML templates.
Components

The Components folder comprises reusable components

  • BlogViewComponent.cs
  • CategoryViewComponent.cs
  • CreditViewComponent.cs
  • InboxViewComponent.cs
  • NotificationViewComponent.cs
  • ProductViewComponent.cs
  • SellerViewComponent.cs
Controllers

Controllers handle various aspects of the application

  • AppsetttingController
  • GlobalController
  • HomeController
  • InboxController
  • LanguageController
  • LoginController
  • MasterController
  • MembershipController
  • OrderController
  • ProductController
  • ShippingController
  • UserController
Helpers

Helper classes assist in different functionalities

  • AjaxOnlyAttributes
  • EncryptionHelper
  • EnumHelper
  • FileUploadHelper
  • GlobalHelper
  • GlobalMiddleware
  • InboxHelper
  • MembershipHelper
  • NotificationHelper
  • OrderHelper
  • PaymentGatewHelper
  • ProductHelper
  • UserHelper
  • WebsettingHelper
Migrations

The Migrations folder stores all database migration records.

Models

The Models folder contains .cs files defining the database models.

Pages

This folder includes various subfolders, each representing a self-contained module:

  • Admin
  • Advertise
  • Affiliate
  • Blog
  • Buyer
  • Credits
  • Forum
  • Inbox
  • Listing
  • Login
  • Notification
  • Orders
  • Page
  • Payment
  • PostRequest
  • Review
  • Seller
  • Services
  • Shared (contains subfolders: Global, Setups, Theme)
  • Shipping
  • Shop
  • Subscription
  • User
ViewModel

The ViewModel folder holds .cs files representing the application's view models:

  • AdminSettingViewModel
  • AppSettingModel
  • CommunityViewModel
  • InboxViewModel
  • MembershipViewModel
  • NotificationViewModel
  • OrderViewModel
  • PageViewModel
  • PaymentSettingViewModel
  • ProductViewModel
  • UserViewModel
Chat with us