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.
Other files loaded in the Project
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