Getting Started
This page takes you from a fresh clone to a running Al-Mohaseb business site.
Prerequisites
| Tool | Version | Why |
|---|---|---|
| .NET SDK | 10.0.100 or later (global.json rolls forward) | Builds and runs the solution |
| Node.js | 20 or later | Only to build this documentation site |
Preview packages come from the Orchard Core and CrestApps Cloudsmith feeds, which NuGet.config already lists with package source mapping. No extra feed setup is needed.
Build, test and run
From the repository root:
dotnet build CrestApps.Almohaseb.slnx -c Debug
dotnet test --solution CrestApps.Almohaseb.slnx
dotnet run --project src/Startup/CrestApps.Almohaseb.Web
The host listens on https://localhost:5101 and http://localhost:5100 (see Properties/launchSettings.json).
Set up a business tenant
The first request opens the Orchard Core setup screen.
- Enter a Site name.
- Choose a Recipe. For a business, pick Almohaseb - Convenience store (
almohaseb-business-cstore) or Almohaseb - Service business (almohaseb-business-service). See Setup recipes for what each one enables. - Pick the time zone of the business, for example
America/Detroit. Business dates are computed in this time zone. - Choose SQLite as the database for local development.
- Enter the administrator's user name, email and password, and finish setup.
After setup, sign in at /Admin. Books > Chart of accounts, Settings > Business profile and Tools > Jobs are available. The User Manual explains each screen.
Stop the host and delete src/Startup/CrestApps.Almohaseb.Web/App_Data to get a fresh setup screen.
App_Data holds your local sites: tenants.json, the SQLite databases and the data protection keys. Orchard Core publishes App_Data with the application, so the web project removes it from dotnet publish (target AlmohasebExcludeLocalSitesFromPublish): a publish never carries local sites, and publishing into a folder that already runs never overwrites its sites. A server keeps its own App_Data.
Set up the platform tenant
A hosted deployment runs the Default tenant as the platform, which manages the business and firm tenants. Set up the Default tenant with Almohaseb - Platform (almohaseb-platform), then create business tenants from Tenants in its admin. See Architecture for how firms and businesses map to tenants.
Solution layout
src/Abstractions/CrestApps.Almohaseb.<Area>.Abstractions contracts and primitives with no Orchard dependency
src/Core/CrestApps.Almohaseb.<Area>.Core models, indexes, stores, services, static permissions
src/Modules/CrestApps.Almohaseb.<Area> Orchard wiring: Manifest, Startup, drivers, controllers, views, migrations, recipes
src/Startup/CrestApps.Almohaseb.Web the host; references every module
src/CrestApps.Almohaseb.Docs this documentation site
tests/CrestApps.Almohaseb.Tests unit and module tests
Architecture explains the rules behind this layout.
Run the documentation site
cd src/CrestApps.Almohaseb.Docs
npm install
npm start
The site opens at http://localhost:3000 and reloads as you edit. Search only works on a production build (npm run build, then npm run serve). Before you open a pull request that touches the docs, run npm run check:manuals and npm run build. The contributor guide is src/CrestApps.Almohaseb.Docs/README.md.