Sitelet https://github.com/arb-rajab/flexcatalog/blob/main/README.md
Skip to content

Latest commit

 

History

History
69 lines (57 loc) · 2.72 KB

File metadata and controls

69 lines (57 loc) · 2.72 KB

FlexCatalog

A multi-tenant product catalog and inventory API built on ASP.NET Core (.NET 10) and MongoDB. Portfolio skill-demo focused on .NET + NoSQL: genuinely different attribute shapes per product category, structural tenant isolation, faceted search via a MongoDB aggregation pipeline, and (fed by a real NATS domain-event stream) an independent MongoDB projection service plus a dedicated Meilisearch full-text search index.

See docs/project-memory/brief.md for what this is and why, and docs/project-memory/decisions/ for the architecture decision records (multi-tenant isolation, schema/indexing, auth, faceted search).

Quick start

export FLEXCATALOG_JWT_SECRET=$(openssl rand -base64 48)
export FLEXCATALOG_MEILI_MASTER_KEY=$(openssl rand -base64 24)
docker compose up --build

API at http://localhost:8080. Interactive docs at /scalar (in Development, which is docker-compose's default). Demo data (two tenants, three users, six products) is seeded automatically on first startup -- see docs/project-memory/ops.md for credentials and details.

curl -X POST http://localhost:8080/api/auth/login \
  -H 'Content-Type: application/json' \
  -d '{"username":"admin@acme.test","password":"Passw0rd!"}'

Running tests

dotnet test tests/FlexCatalog.UnitTests/FlexCatalog.UnitTests.csproj
dotnet test tests/FlexCatalog.IntegrationTests/FlexCatalog.IntegrationTests.csproj  # needs Docker

Project layout

src/FlexCatalog.Api/              The API (see architecture.md for layering)
src/FlexCatalog.Contracts/        Shared event/search-document contracts
src/FlexCatalog.InventoryProjector/  Independent NATS consumer -> MongoDB read-model
src/FlexCatalog.SearchIndexer/    Independent NATS consumer -> Meilisearch index
tests/FlexCatalog.UnitTests/      No external dependencies
tests/FlexCatalog.IntegrationTests/  Testcontainers + real MongoDB/NATS/Meilisearch
docs/project-memory/              Brief, requirements, architecture, security,
                                   testing, ops, ADRs, risk, backlog, handoff

Docs index