Skip to content

8. Developer Guide

galaxygift edited this page Sep 21, 2022 · 1 revision

Packages and plugins were installed and used in project:

Packages in server side:

Libraries in client side:

MultiLingual Data:

this project handle multilingual data in two ways: first we have dictionaries file in wwwroot folder of each project (admin and shop). This disctionaries contain the value of static strings which are used in projects in different language.

Another way is for dynamic values which store in database and will be store in multilingual object of each entity.

Authentication and Authorization:

Inside admin project each user has a role which has different permissions. Each permission is an access to an action in a controller.

Admin project can be accessed by users who “IsSiteUser” field of its entity equal to false. User accounts which are created in shop site this field is always false but admin users are able to create both type of users in admin project.

Menus in admin project will be built based on userRole unless use is SystemAccount

(“IsSystemAccount” equal to true) this user has access to every thing every path or any domains and entities that exist on database, complete and full access.

Authorization were implemented by policy-based authorization. We have a custom policy called role and based on permissions role it allow or forbid a path.

 Inside Shop project a site user can register in site and after his/her account is created he can interact with site like commenting, rating, adding like/dislike and doing online shopping and having basket only if main site is a shop.

Modules:

we have created predefined modules, each module is a viewcomponent which has some parameters as input arguments.

Developer can create any custom module here and add its related record in Module entity of database.

some modules are created in the way that has several views like ProductList or ContentList developer can extend these views for this kind of modules and add that viewName to related enum in the project.