macrozheng/mall

mall项目是一套电商系统,包括前台商城系统及后台管理系统,基于Spring Boot+MyBatis实现,采用Docker容器化部署。 前台商城系统包含首页门户、商品推荐、商品搜索、商品展示、购物车、订单流程、会员中心、客户服务、帮助中心等模块。 后台管理系统包含商品管理、订单管理、会员管理、促销管理、运营管理、内容管理、统计报表、财务管理、权限管理、设置等模块。

46
Hotness score
34
Reliability score
84,249
Stars
over 8 years
Age
0
Published reviews
0
Questions

Scores

Hotness and reliability

The two headline scores, measured daily, with 30, 90, and 180 day views.

Hotness score

Jul 19, 2026

Current46

Previous35

Weekly average

100500
Full metrics details

Derived only from GitHub GraphQL starredAt events after daily star totals are reconciled.

180 observed daily rows. Missing days are not fabricated.

Hotness formula

40% Hot today + 40% Hot this week + 20% Breakout.

  • 40% Hot today: 1
  • 40% Hot this week: 41
  • 20% Breakout: 12
  • Stars gained: 1d: 0
  • Stars gained: 7d: 101
  • Stars gained: 14d: 322
  • Stars gained: 30d: 486
  • Stars gained: 90d: 1206

Per-day formula: 0.40 × Hot today + 0.40 × Hot week + 0.20 × Breakout.

  • Same-day multiplier = stars 1d ÷ max(1, stars 7d ÷ 7)
  • Weekly multiplier = stars 7d ÷ max(1, stars 30d ÷ 30 × 7)
  • Fortnight multiplier = stars 14d ÷ max(1, stars 90d ÷ 90 × 14)
  • Hot today = clamp(70 × log-scale(stars 1d, 1000) + 30 × breakout-scale(same-day, 4))
  • Hot week = clamp(75 × log-scale(stars 7d, 5000) + 25 × breakout-scale(weekly, 3))
  • Breakout = clamp(35 × breakout-scale(same-day, 4) + 40 × breakout-scale(weekly, 3) + 25 × breakout-scale(fortnight, 2.5))
DateStarsStars 1dStars 7dStars 14dStars 30dStars 90dSame-day multiplierWeekly multiplierFortnight multiplierHot todayHot weekBreakoutStored score

Reliability score

Jul 19, 2026

Current34

Previous35

Weekly average

100500
Full metrics details

Derived from the displayed continuity, closure, shipping, liveness, and support-burden components.

180 observed daily rows. Missing days are not fabricated.

Reliability formula

30% Continuity + 30% Closure + 20% Shipping + 10% Liveness + 10% Support burden.

  • 30% Continuity: 15
  • 30% Closure: 45
  • 20% Shipping: 0
  • 10% Liveness: 58
  • 10% Support burden: 100

Per-day formula: 0.30 × Continuity + 0.30 × Closure + 0.20 × Shipping + 0.10 × Liveness + 0.10 × Support burden.

  • Continuity = 35% active ratio 90d + 20% active ratio 30d + 15% PR efficiency 90d + 10% PR efficiency 30d + 10% liveness + 10% observed-history coverage
  • Closure = 55% PR merge efficiency 90d + 45% issue close efficiency 90d
  • Shipping = 100 × (20% × release ratio 30d + 30% × release ratio 90d + 50% × release ratio 180d); ratios are releases ÷ 2, 6, and 12, capped at 1
  • Support burden = 100 − 2 × open issues per 1,000 stars
  • Liveness = 100 × exp(−pushed days ago ÷ 120)

Stars, issues, pull requests, and releases are daily observations. Pushed-days and license are repository snapshot-derived inputs and are not independent historical GitHub events.

DateIssues openedIssues closedPRs openedPRs mergedReleasesStarsOpen issuesPushed days agoContinuityClosureShippingLivenessSupport burdenLicenseObserved daysMissing daysNeeds healingStored score

Reliability breakdown

What drives the reliability score

Component scores measured daily from GitHub activity (2026-07-18).

Continuity30% of headline15

Activity on 7 of 90 tracked days in the last 90 and 2 of 30 in the last 30.

Closure30% of headline45

Merged 0 of 5 PRs opened and closed 4 of 4 issues opened over the last 90 tracked days — PR flow carries 55% of this component, issue flow 45%.

Shipping20% of headline0

0 releases in the last 180 days, 0 in the last 90 and 0 in the last 30 — a steady cadence scores highest.

Liveness10% of headline58

Last push 67 days ago — freshness decays as pushes age (roughly halves every 83 days without a push).

Support burden10% of headline100

Open-issue load isn't tracked for this repo yet.

Adoption confidence41

Modeled — how confidently teams are adopting this repo. Stargazers

Maintenance quality34

Modeled from PR/issue responsiveness and upkeep signals. Activity pulse

Risk score40

Modeled — lower is better; adoption and continuity risk. Repository

Stays active (30d)24%

Modeled chance the repo stays active over 30 days. Activity pulse

Stays active (90d)28%

Modeled chance the repo stays active over 90 days. Activity pulse

Release rhythm (180d)0

Regularity of releases over the last 180 days. Releases

Maintainer bus risk (90d)85%

Modeled — lower is better; concentration of commits in few maintainers. Contributors graph

Topics

Explore related topics

Jump into the topic listings this repository belongs to.

Measured history

Project metrics

Weekly GitHub totals with 30, 90, and 180 day views.

Weekly star gains

Jul 19, 2026

Current164

Previous171

Weekly star gains

23169-93
Full metrics details

GitHub GraphQL current stargazer cohort, reconstructed from starredAt events and totalCount retrieved in one stable pagination walk. GitHub does not expose historical unstar events, so this is not an exact ledger of past star counts.

180 observed daily rows. Missing days are not fabricated.

DateValue

Cumulative stars

Jul 19, 2026

Current84,250

Previous84,086

Cumulative total

84,25042,1250
Full metrics details

Running total of the GitHub GraphQL stargazer count over time (not weekly deltas), reconstructed from starredAt events and totalCount in one stable pagination walk. GitHub does not expose historical unstar events, so this is not an exact ledger of past star counts.

180 observed daily rows. Missing days are not fabricated.

DateValue

Issues opened

Jul 12, 2026

Current0

Previous0

Weekly total

210
Full metrics details

GitHub API observation. Historical values render only when the source provides a real observation for that day.

178 observed daily rows. Missing days are not fabricated.

DateValue

Issues closed

Jul 12, 2026

Current0

Previous0

Weekly total

210
Full metrics details

GitHub Search issue totals queried for exact UTC days; rolling values are sums of proven daily counts.

178 observed daily rows. Missing days are not fabricated.

DateValue

Pull requests opened

Jul 12, 2026

Current0

Previous0

Weekly total

1160
Full metrics details

GitHub API observation. Historical values render only when the source provides a real observation for that day.

178 observed daily rows. Missing days are not fabricated.

DateValue

Pull requests closed

Jul 12, 2026

Current0

Previous0

Weekly total

630
Full metrics details

GitHub Search pull-request totals queried for exact UTC days; rolling values are sums of proven daily counts.

178 observed daily rows. Missing days are not fabricated.

DateValue

Pull requests merged

Jul 12, 2026

Current0

Previous0

Weekly total

110
Full metrics details

GitHub API observation. Historical values render only when the source provides a real observation for that day.

178 observed daily rows. Missing days are not fabricated.

DateValue

Issue close ratio (daily)

Jul 16, 2026

Current1.00

Previous1.00

Daily ratio — a gap means nothing was opened that day

How this works: each day's value is issues closed that day ÷ issues opened that day. Days when nothing was opened render as gaps — never a rolling average or a made-up zero. Values above 1 mean the project closed more issues than arrived that day.

1.000.500.00
Full metrics details

GitHub Search issue totals queried for exact UTC days; rolling values are sums of proven daily counts.

4 observed daily rows. Missing days are not fabricated.

Per-day formula: issues closed that day ÷ issues opened that day; blank when nothing was opened (a gap, not a zero).

DateIssues openedIssues closedStored score

Pull request close ratio (daily)

Jul 16, 2026

Current1.00

Previous0.50

Daily ratio — a gap means nothing was opened that day

How this works: each day's value is pull requests closed that day ÷ pull requests opened that day. Days when nothing was opened render as gaps — never a rolling average or a made-up zero. Values above 1 mean the project closed more pull requests than arrived that day.

2.001.000.00
Full metrics details

GitHub Search pull-request totals queried for exact UTC days; rolling values are sums of proven daily counts.

13 observed daily rows. Missing days are not fabricated.

Per-day formula: pull requests closed that day ÷ pull requests opened that day; blank when nothing was opened (a gap, not a zero).

DatePRs openedPRs closedStored score

Project Overview

macrozheng/mall is a Java e-commerce codebase centered on Spring Boot, MyBatis, and containerized deployment. Your team gets both storefront and back-office scope in one repository: catalog browsing, search, cart and order flow on the mall side, plus product, order, member, promotion, operations, content, reporting, finance, and permission management on the admin side.

You can use it as a reference implementation for a full B2C workflow when your roadmap includes both customer-facing APIs and internal operations tooling. You should expect meaningful domain customization work around pricing, inventory, fulfillment, and permission policy before production rollout.

Key Challenges Addressed

Your team typically hits three hard problems in commerce systems: keeping customer and admin workflows aligned, managing complex order lifecycle states, and shipping repeatable environments.

  • One codebase covers storefront and admin domains, so your team can keep business rules closer together instead of splitting logic across disconnected services.
  • Spring Boot service patterns plus MyBatis persistence give your team explicit SQL control when order and promotion logic needs deterministic queries.
  • Dockerized deployment paths reduce machine-specific drift and make reproducible environments easier during integration and release work.
  • Built-in module scope across products, members, promotions, and operations gives your team a starting point for cross-domain process wiring.

Getting Started

You can start quickly when your team treats the repository as a baseline and follows the exact runtime matrix in the upstream docs.

  1. Clone the repository and review the README and module layout.
  2. Provision the required backing services listed by the project configuration.
  3. Start the selected application modules and verify API reachability.
  4. Seed baseline data from the repository-provided SQL/data assets before testing end-to-end flows.
git clone https://github.com/macrozheng/mall.git
cd mall
# Follow the repository README for required services, profiles, and module startup order.

You should validate environment variables, database initialization order, and service connectivity first, because those are the most common first-run blockers in multi-module commerce stacks.

Features and Use Cases

Your team can map documented modules directly to operational scenarios:

  • Storefront experience: home portal, recommendations, search, product display, cart, checkout, member center, and customer service flows.
  • Admin operations: product lifecycle, order operations, member management, promotions, content, reporting, finance, and permission administration.
  • Commerce process prototyping: test promotion and order-policy changes in a realistic domain model before custom extraction.
  • Internal platform base: extend existing modules when your team needs a self-hosted Java commerce foundation instead of starting from a blank service set.

Ecosystem and Dependencies

Your integration baseline is clear and practical:

  • Spring Boot for service runtime and configuration conventions.
  • MyBatis for persistence mappings and SQL-centric data access.
  • Docker-based deployment paths for environment consistency.

This combination favors teams that want explicit database control and incremental refactoring options over highly abstract, generated data layers.

Architectural Overview

You work with a layered service architecture where HTTP/API entrypoints map into domain services and persistence adapters. Your team can separate storefront and admin concerns at the module/API boundary while still sharing core commerce entities and rule paths.

Operationally, this matters because your team can:

  • isolate risk by changing admin workflows without rewriting storefront endpoints,
  • keep SQL-visible behavior for sensitive paths like pricing and order transitions,
  • containerize repeatable local, CI, and staging environments,
  • phase extraction into services later if your throughput or ownership model demands it.

Pros and Cons

  • Pros

    • Full storefront plus admin scope in one project accelerates your initial capability build.
    • Java + Spring Boot + MyBatis is familiar and auditable for teams with strong JVM and SQL practice.
    • Docker deployment support improves reproducibility during onboarding and release cycles.
  • Cons

    • Your team still owns substantial domain adaptation work for production-grade business rules.
    • Repository breadth can increase onboarding time when your team only needs a narrow slice.
    • Monolithic coupling risk can grow if your team extends modules without clear boundaries.

Comparison and Alternatives

Measured 90-day trends for this project and its alternatives.

GitHub stars

Weekly star gains

23169-93
Full metrics details

GitHub GraphQL current stargazer cohort, reconstructed from starredAt events and totalCount retrieved in one stable pagination walk. GitHub does not expose historical unstar events, so this is not an exact ledger of past star counts.

Mall

GitHub GraphQL current stargazer cohort, reconstructed from starredAt events and totalCount retrieved in one stable pagination walk. GitHub does not expose historical unstar events, so this is not an exact ledger of past star counts.

180 observed daily rows. Missing days are not fabricated.

DateValue
Saleor

GitHub GraphQL current stargazer cohort, reconstructed from starredAt events and totalCount retrieved in one stable pagination walk. GitHub does not expose historical unstar events, so this is not an exact ledger of past star counts.

43 observed daily rows. Missing days are not fabricated.

DateValue
Medusa

GitHub GraphQL current stargazer cohort, reconstructed from starredAt events and totalCount retrieved in one stable pagination walk. GitHub does not expose historical unstar events, so this is not an exact ledger of past star counts.

135 observed daily rows. Missing days are not fabricated.

DateValue
Spree

GitHub GraphQL current stargazer cohort, reconstructed from starredAt events and totalCount retrieved in one stable pagination walk. GitHub does not expose historical unstar events, so this is not an exact ledger of past star counts.

43 observed daily rows. Missing days are not fabricated.

DateValue
nopCommerce

GitHub GraphQL current stargazer cohort, reconstructed from starredAt events and totalCount retrieved in one stable pagination walk. GitHub does not expose historical unstar events, so this is not an exact ledger of past star counts.

44 observed daily rows. Missing days are not fabricated.

DateValue
Apache OFBiz

GitHub GraphQL current stargazer cohort, reconstructed from starredAt events and totalCount retrieved in one stable pagination walk. GitHub does not expose historical unstar events, so this is not an exact ledger of past star counts.

45 observed daily rows. Missing days are not fabricated.

DateValue

Issues opened

Weekly total

20100
Full metrics details

GitHub API observation. Historical values render only when the source provides a real observation for that day.

Mall

GitHub API observation. Historical values render only when the source provides a real observation for that day.

178 observed daily rows. Missing days are not fabricated.

DateValue
Medusa

GitHub API observation. Historical values render only when the source provides a real observation for that day.

101 observed daily rows. Missing days are not fabricated.

DateValue

Issues closed

Weekly total

31160
Full metrics details

GitHub Search issue totals queried for exact UTC days; rolling values are sums of proven daily counts.

Mall

GitHub Search issue totals queried for exact UTC days; rolling values are sums of proven daily counts.

178 observed daily rows. Missing days are not fabricated.

DateValue
Medusa

GitHub Search issue totals queried for exact UTC days; rolling values are sums of proven daily counts.

101 observed daily rows. Missing days are not fabricated.

DateValue

Pull requests opened

Weekly total

54270
Full metrics details

GitHub API observation. Historical values render only when the source provides a real observation for that day.

Mall

GitHub API observation. Historical values render only when the source provides a real observation for that day.

178 observed daily rows. Missing days are not fabricated.

DateValue
Medusa

GitHub API observation. Historical values render only when the source provides a real observation for that day.

101 observed daily rows. Missing days are not fabricated.

DateValue

Pull requests closed

Weekly total

80400
Full metrics details

GitHub Search pull-request totals queried for exact UTC days; rolling values are sums of proven daily counts.

Mall

GitHub Search pull-request totals queried for exact UTC days; rolling values are sums of proven daily counts.

178 observed daily rows. Missing days are not fabricated.

DateValue
Medusa

GitHub Search pull-request totals queried for exact UTC days; rolling values are sums of proven daily counts.

101 observed daily rows. Missing days are not fabricated.

DateValue

Pull requests merged

Weekly total

57290
Full metrics details

GitHub API observation. Historical values render only when the source provides a real observation for that day.

Mall

GitHub API observation. Historical values render only when the source provides a real observation for that day.

178 observed daily rows. Missing days are not fabricated.

DateValue
Medusa

GitHub API observation. Historical values render only when the source provides a real observation for that day.

101 observed daily rows. Missing days are not fabricated.

DateValue

Open/closed pull request ratio

Weekly average

100500
Full metrics details

GitHub Search pull-request totals queried for exact UTC days; rolling values are sums of proven daily counts.

Mall

GitHub Search pull-request totals queried for exact UTC days; rolling values are sums of proven daily counts.

180 observed daily rows. Missing days are not fabricated.

DateValue
Saleor

GitHub Search pull-request totals queried for exact UTC days; rolling values are sums of proven daily counts.

43 observed daily rows. Missing days are not fabricated.

DateValue
Medusa

GitHub Search pull-request totals queried for exact UTC days; rolling values are sums of proven daily counts.

135 observed daily rows. Missing days are not fabricated.

DateValue
Spree

GitHub Search pull-request totals queried for exact UTC days; rolling values are sums of proven daily counts.

43 observed daily rows. Missing days are not fabricated.

DateValue
nopCommerce

GitHub Search pull-request totals queried for exact UTC days; rolling values are sums of proven daily counts.

44 observed daily rows. Missing days are not fabricated.

DateValue
Apache OFBiz

GitHub Search pull-request totals queried for exact UTC days; rolling values are sums of proven daily counts.

45 observed daily rows. Missing days are not fabricated.

DateValue

Open/closed issues ratio

Weekly average

100500
Full metrics details

GitHub Search issue totals queried for exact UTC days; rolling values are sums of proven daily counts.

Mall

GitHub Search issue totals queried for exact UTC days; rolling values are sums of proven daily counts.

180 observed daily rows. Missing days are not fabricated.

DateValue
Saleor

GitHub Search issue totals queried for exact UTC days; rolling values are sums of proven daily counts.

43 observed daily rows. Missing days are not fabricated.

DateValue
Medusa

GitHub Search issue totals queried for exact UTC days; rolling values are sums of proven daily counts.

135 observed daily rows. Missing days are not fabricated.

DateValue
Spree

GitHub Search issue totals queried for exact UTC days; rolling values are sums of proven daily counts.

43 observed daily rows. Missing days are not fabricated.

DateValue
nopCommerce

GitHub Search issue totals queried for exact UTC days; rolling values are sums of proven daily counts.

44 observed daily rows. Missing days are not fabricated.

DateValue
Apache OFBiz

GitHub Search issue totals queried for exact UTC days; rolling values are sums of proven daily counts.

45 observed daily rows. Missing days are not fabricated.

DateValue

Releases

Weekly total

110
Full metrics details

GitHub release published_at events bucketed by UTC day; drafts are excluded.

Mall

GitHub release published_at events bucketed by UTC day; drafts are excluded.

180 observed daily rows. Missing days are not fabricated.

DateValue
Saleor

GitHub release published_at events bucketed by UTC day; drafts are excluded.

43 observed daily rows. Missing days are not fabricated.

DateValue
Medusa

GitHub release published_at events bucketed by UTC day; drafts are excluded.

135 observed daily rows. Missing days are not fabricated.

DateValue
Spree

GitHub release published_at events bucketed by UTC day; drafts are excluded.

43 observed daily rows. Missing days are not fabricated.

DateValue
nopCommerce

GitHub release published_at events bucketed by UTC day; drafts are excluded.

44 observed daily rows. Missing days are not fabricated.

DateValue
Apache OFBiz

GitHub release published_at events bucketed by UTC day; drafts are excluded.

45 observed daily rows. Missing days are not fabricated.

DateValue

Hotness score

Weekly average

100500
Full metrics details

Derived only from GitHub GraphQL starredAt events after daily star totals are reconciled.

Mall

Derived only from GitHub GraphQL starredAt events after daily star totals are reconciled.

180 observed daily rows. Missing days are not fabricated.

Per-day formula: 0.40 × Hot today + 0.40 × Hot week + 0.20 × Breakout.

  • Same-day multiplier = stars 1d ÷ max(1, stars 7d ÷ 7)
  • Weekly multiplier = stars 7d ÷ max(1, stars 30d ÷ 30 × 7)
  • Fortnight multiplier = stars 14d ÷ max(1, stars 90d ÷ 90 × 14)
  • Hot today = clamp(70 × log-scale(stars 1d, 1000) + 30 × breakout-scale(same-day, 4))
  • Hot week = clamp(75 × log-scale(stars 7d, 5000) + 25 × breakout-scale(weekly, 3))
  • Breakout = clamp(35 × breakout-scale(same-day, 4) + 40 × breakout-scale(weekly, 3) + 25 × breakout-scale(fortnight, 2.5))
DateStarsStars 1dStars 7dStars 14dStars 30dStars 90dSame-day multiplierWeekly multiplierFortnight multiplierHot todayHot weekBreakoutStored score
Saleor

Derived only from GitHub GraphQL starredAt events after daily star totals are reconciled.

43 observed daily rows. Missing days are not fabricated.

Per-day formula: 0.40 × Hot today + 0.40 × Hot week + 0.20 × Breakout.

  • Same-day multiplier = stars 1d ÷ max(1, stars 7d ÷ 7)
  • Weekly multiplier = stars 7d ÷ max(1, stars 30d ÷ 30 × 7)
  • Fortnight multiplier = stars 14d ÷ max(1, stars 90d ÷ 90 × 14)
  • Hot today = clamp(70 × log-scale(stars 1d, 1000) + 30 × breakout-scale(same-day, 4))
  • Hot week = clamp(75 × log-scale(stars 7d, 5000) + 25 × breakout-scale(weekly, 3))
  • Breakout = clamp(35 × breakout-scale(same-day, 4) + 40 × breakout-scale(weekly, 3) + 25 × breakout-scale(fortnight, 2.5))
DateStarsStars 1dStars 7dStars 14dStars 30dStars 90dSame-day multiplierWeekly multiplierFortnight multiplierHot todayHot weekBreakoutStored score
Medusa

Derived only from GitHub GraphQL starredAt events after daily star totals are reconciled.

135 observed daily rows. Missing days are not fabricated.

Per-day formula: 0.40 × Hot today + 0.40 × Hot week + 0.20 × Breakout.

  • Same-day multiplier = stars 1d ÷ max(1, stars 7d ÷ 7)
  • Weekly multiplier = stars 7d ÷ max(1, stars 30d ÷ 30 × 7)
  • Fortnight multiplier = stars 14d ÷ max(1, stars 90d ÷ 90 × 14)
  • Hot today = clamp(70 × log-scale(stars 1d, 1000) + 30 × breakout-scale(same-day, 4))
  • Hot week = clamp(75 × log-scale(stars 7d, 5000) + 25 × breakout-scale(weekly, 3))
  • Breakout = clamp(35 × breakout-scale(same-day, 4) + 40 × breakout-scale(weekly, 3) + 25 × breakout-scale(fortnight, 2.5))
DateStarsStars 1dStars 7dStars 14dStars 30dStars 90dSame-day multiplierWeekly multiplierFortnight multiplierHot todayHot weekBreakoutStored score
Spree

Derived only from GitHub GraphQL starredAt events after daily star totals are reconciled.

43 observed daily rows. Missing days are not fabricated.

Per-day formula: 0.40 × Hot today + 0.40 × Hot week + 0.20 × Breakout.

  • Same-day multiplier = stars 1d ÷ max(1, stars 7d ÷ 7)
  • Weekly multiplier = stars 7d ÷ max(1, stars 30d ÷ 30 × 7)
  • Fortnight multiplier = stars 14d ÷ max(1, stars 90d ÷ 90 × 14)
  • Hot today = clamp(70 × log-scale(stars 1d, 1000) + 30 × breakout-scale(same-day, 4))
  • Hot week = clamp(75 × log-scale(stars 7d, 5000) + 25 × breakout-scale(weekly, 3))
  • Breakout = clamp(35 × breakout-scale(same-day, 4) + 40 × breakout-scale(weekly, 3) + 25 × breakout-scale(fortnight, 2.5))
DateStarsStars 1dStars 7dStars 14dStars 30dStars 90dSame-day multiplierWeekly multiplierFortnight multiplierHot todayHot weekBreakoutStored score
nopCommerce

Derived only from GitHub GraphQL starredAt events after daily star totals are reconciled.

44 observed daily rows. Missing days are not fabricated.

Per-day formula: 0.40 × Hot today + 0.40 × Hot week + 0.20 × Breakout.

  • Same-day multiplier = stars 1d ÷ max(1, stars 7d ÷ 7)
  • Weekly multiplier = stars 7d ÷ max(1, stars 30d ÷ 30 × 7)
  • Fortnight multiplier = stars 14d ÷ max(1, stars 90d ÷ 90 × 14)
  • Hot today = clamp(70 × log-scale(stars 1d, 1000) + 30 × breakout-scale(same-day, 4))
  • Hot week = clamp(75 × log-scale(stars 7d, 5000) + 25 × breakout-scale(weekly, 3))
  • Breakout = clamp(35 × breakout-scale(same-day, 4) + 40 × breakout-scale(weekly, 3) + 25 × breakout-scale(fortnight, 2.5))
DateStarsStars 1dStars 7dStars 14dStars 30dStars 90dSame-day multiplierWeekly multiplierFortnight multiplierHot todayHot weekBreakoutStored score
Apache OFBiz

Derived only from GitHub GraphQL starredAt events after daily star totals are reconciled.

45 observed daily rows. Missing days are not fabricated.

Per-day formula: 0.40 × Hot today + 0.40 × Hot week + 0.20 × Breakout.

  • Same-day multiplier = stars 1d ÷ max(1, stars 7d ÷ 7)
  • Weekly multiplier = stars 7d ÷ max(1, stars 30d ÷ 30 × 7)
  • Fortnight multiplier = stars 14d ÷ max(1, stars 90d ÷ 90 × 14)
  • Hot today = clamp(70 × log-scale(stars 1d, 1000) + 30 × breakout-scale(same-day, 4))
  • Hot week = clamp(75 × log-scale(stars 7d, 5000) + 25 × breakout-scale(weekly, 3))
  • Breakout = clamp(35 × breakout-scale(same-day, 4) + 40 × breakout-scale(weekly, 3) + 25 × breakout-scale(fortnight, 2.5))
DateStarsStars 1dStars 7dStars 14dStars 30dStars 90dSame-day multiplierWeekly multiplierFortnight multiplierHot todayHot weekBreakoutStored score

Reliability score

Weekly average

100500
Full metrics details

Derived from the displayed continuity, closure, shipping, liveness, and support-burden components.

Mall

Derived from the displayed continuity, closure, shipping, liveness, and support-burden components.

180 observed daily rows. Missing days are not fabricated.

Per-day formula: 0.30 × Continuity + 0.30 × Closure + 0.20 × Shipping + 0.10 × Liveness + 0.10 × Support burden.

  • Continuity = 35% active ratio 90d + 20% active ratio 30d + 15% PR efficiency 90d + 10% PR efficiency 30d + 10% liveness + 10% observed-history coverage
  • Closure = 55% PR merge efficiency 90d + 45% issue close efficiency 90d
  • Shipping = 100 × (20% × release ratio 30d + 30% × release ratio 90d + 50% × release ratio 180d); ratios are releases ÷ 2, 6, and 12, capped at 1
  • Support burden = 100 − 2 × open issues per 1,000 stars
  • Liveness = 100 × exp(−pushed days ago ÷ 120)

Stars, issues, pull requests, and releases are daily observations. Pushed-days and license are repository snapshot-derived inputs and are not independent historical GitHub events.

DateIssues openedIssues closedPRs openedPRs mergedReleasesStarsOpen issuesPushed days agoContinuityClosureShippingLivenessSupport burdenLicenseObserved daysMissing daysNeeds healingStored score
Saleor

Derived from the displayed continuity, closure, shipping, liveness, and support-burden components.

43 observed daily rows. Missing days are not fabricated.

Per-day formula: 0.30 × Continuity + 0.30 × Closure + 0.20 × Shipping + 0.10 × Liveness + 0.10 × Support burden.

  • Continuity = 35% active ratio 90d + 20% active ratio 30d + 15% PR efficiency 90d + 10% PR efficiency 30d + 10% liveness + 10% observed-history coverage
  • Closure = 55% PR merge efficiency 90d + 45% issue close efficiency 90d
  • Shipping = 100 × (20% × release ratio 30d + 30% × release ratio 90d + 50% × release ratio 180d); ratios are releases ÷ 2, 6, and 12, capped at 1
  • Support burden = 100 − 2 × open issues per 1,000 stars
  • Liveness = 100 × exp(−pushed days ago ÷ 120)

Stars, issues, pull requests, and releases are daily observations. Pushed-days and license are repository snapshot-derived inputs and are not independent historical GitHub events.

DateIssues openedIssues closedPRs openedPRs mergedReleasesStarsOpen issuesPushed days agoContinuityClosureShippingLivenessSupport burdenLicenseObserved daysMissing daysNeeds healingStored score
Medusa

Derived from the displayed continuity, closure, shipping, liveness, and support-burden components.

135 observed daily rows. Missing days are not fabricated.

Per-day formula: 0.30 × Continuity + 0.30 × Closure + 0.20 × Shipping + 0.10 × Liveness + 0.10 × Support burden.

  • Continuity = 35% active ratio 90d + 20% active ratio 30d + 15% PR efficiency 90d + 10% PR efficiency 30d + 10% liveness + 10% observed-history coverage
  • Closure = 55% PR merge efficiency 90d + 45% issue close efficiency 90d
  • Shipping = 100 × (20% × release ratio 30d + 30% × release ratio 90d + 50% × release ratio 180d); ratios are releases ÷ 2, 6, and 12, capped at 1
  • Support burden = 100 − 2 × open issues per 1,000 stars
  • Liveness = 100 × exp(−pushed days ago ÷ 120)

Stars, issues, pull requests, and releases are daily observations. Pushed-days and license are repository snapshot-derived inputs and are not independent historical GitHub events.

DateIssues openedIssues closedPRs openedPRs mergedReleasesStarsOpen issuesPushed days agoContinuityClosureShippingLivenessSupport burdenLicenseObserved daysMissing daysNeeds healingStored score
Spree

Derived from the displayed continuity, closure, shipping, liveness, and support-burden components.

43 observed daily rows. Missing days are not fabricated.

Per-day formula: 0.30 × Continuity + 0.30 × Closure + 0.20 × Shipping + 0.10 × Liveness + 0.10 × Support burden.

  • Continuity = 35% active ratio 90d + 20% active ratio 30d + 15% PR efficiency 90d + 10% PR efficiency 30d + 10% liveness + 10% observed-history coverage
  • Closure = 55% PR merge efficiency 90d + 45% issue close efficiency 90d
  • Shipping = 100 × (20% × release ratio 30d + 30% × release ratio 90d + 50% × release ratio 180d); ratios are releases ÷ 2, 6, and 12, capped at 1
  • Support burden = 100 − 2 × open issues per 1,000 stars
  • Liveness = 100 × exp(−pushed days ago ÷ 120)

Stars, issues, pull requests, and releases are daily observations. Pushed-days and license are repository snapshot-derived inputs and are not independent historical GitHub events.

DateIssues openedIssues closedPRs openedPRs mergedReleasesStarsOpen issuesPushed days agoContinuityClosureShippingLivenessSupport burdenLicenseObserved daysMissing daysNeeds healingStored score
nopCommerce

Derived from the displayed continuity, closure, shipping, liveness, and support-burden components.

44 observed daily rows. Missing days are not fabricated.

Per-day formula: 0.30 × Continuity + 0.30 × Closure + 0.20 × Shipping + 0.10 × Liveness + 0.10 × Support burden.

  • Continuity = 35% active ratio 90d + 20% active ratio 30d + 15% PR efficiency 90d + 10% PR efficiency 30d + 10% liveness + 10% observed-history coverage
  • Closure = 55% PR merge efficiency 90d + 45% issue close efficiency 90d
  • Shipping = 100 × (20% × release ratio 30d + 30% × release ratio 90d + 50% × release ratio 180d); ratios are releases ÷ 2, 6, and 12, capped at 1
  • Support burden = 100 − 2 × open issues per 1,000 stars
  • Liveness = 100 × exp(−pushed days ago ÷ 120)

Stars, issues, pull requests, and releases are daily observations. Pushed-days and license are repository snapshot-derived inputs and are not independent historical GitHub events.

DateIssues openedIssues closedPRs openedPRs mergedReleasesStarsOpen issuesPushed days agoContinuityClosureShippingLivenessSupport burdenLicenseObserved daysMissing daysNeeds healingStored score
Apache OFBiz

Derived from the displayed continuity, closure, shipping, liveness, and support-burden components.

45 observed daily rows. Missing days are not fabricated.

Per-day formula: 0.30 × Continuity + 0.30 × Closure + 0.20 × Shipping + 0.10 × Liveness + 0.10 × Support burden.

  • Continuity = 35% active ratio 90d + 20% active ratio 30d + 15% PR efficiency 90d + 10% PR efficiency 30d + 10% liveness + 10% observed-history coverage
  • Closure = 55% PR merge efficiency 90d + 45% issue close efficiency 90d
  • Shipping = 100 × (20% × release ratio 30d + 30% × release ratio 90d + 50% × release ratio 180d); ratios are releases ÷ 2, 6, and 12, capped at 1
  • Support burden = 100 − 2 × open issues per 1,000 stars
  • Liveness = 100 × exp(−pushed days ago ÷ 120)

Stars, issues, pull requests, and releases are daily observations. Pushed-days and license are repository snapshot-derived inputs and are not independent historical GitHub events.

DateIssues openedIssues closedPRs openedPRs mergedReleasesStarsOpen issuesPushed days agoContinuityClosureShippingLivenessSupport burdenLicenseObserved daysMissing daysNeeds healingStored score

If your team is evaluating long-term fit, compare macrozheng/mall with Saleor, Medusa, Spree, nopCommerce, and Apache OFBiz.

Project Repo Adoption confidence (~6mo) PRs merged (~6mo) Star growth (~6mo)
mall https://github.com/macrozheng/mall metrics pending 0 metrics pending
Saleor https://github.com/saleor/saleor metrics pending 0 metrics pending
Medusa https://github.com/medusajs/medusa metrics pending 0 metrics pending
Spree https://github.com/spree/spree metrics pending 0 metrics pending
nopCommerce https://github.com/nopSolutions/nopCommerce metrics pending 0 metrics pending
Apache OFBiz https://github.com/apache/ofbiz-framework metrics pending 0 metrics pending

Best overall alternative: Saleor. Your team gets strong API-first commerce patterns, broad community momentum, and mature extension paths with clear operational documentation.

Conclusion

macrozheng/mall works best when your team wants a Java-first, SQL-visible commerce foundation that already includes both storefront and back-office scope. Your main trade-off is customization depth: you gain speed from existing modules, but your team still needs disciplined boundary management and domain hardening for production. Start from the official repository, validate setup details in the README, and track maintenance signals through issues.

Join the conversation

Reviews · Questions · Posts

Share what you know about mall — write a review from your real experience, ask an implementation question, or publish a post about how you use it.

Share your experience

Write or update your review

Explain what worked, what broke down, and what another team should know before adopting mall.

Write your review now — it saves locally and publishes automatically after you sign in.

Rating
Positive attributes
Negative attributes

Project Q&A

Questions and answers

Browse implementation threads tied directly to macrozheng/mall. Each question links through to the full answer page.

Q&A No threads yet

Be the first to ask how teams run mall in production. Every question you post becomes a durable, searchable answer page other developers can find.

Ask the first question

Related posts

Posts tagged with the same topics

These posts come from the same topic surface as this repo, so readers can move from project evaluation into practical writeups and migration notes without leaving context.

Posts No topic-linked posts yet

Share how your team uses mall — a migration note, an architecture writeup, or a comparison. Your post reaches everyone browsing these same topics.

Write the first post
Get a weekly email with the hottest new projects in the Ecommerce Applications and ECommerce Admin Dashboard world.
No Spam. Unsubscribe easily at any time.

Copyright 2018-2026 Awesome Open Source.  All rights reserved.