Provinite / Provinite/chardb

feat: Community shop — item catalog and admin management UI

Open
#239 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

enhancement
Dominant language
TypeScript
Stars
0
Forks
0
Avg merge
2h 52m
Merged PRs (30d)
85

Description

Context

Communities should be able to run a shop where members can browse and eventually purchase items that go into their inventory. This issue covers the data model and the admin-facing item management UI. Purchase/payment flow is handled separately.

Acceptance Criteria

Admin (Community Owner/Mods)
  • Community settings has a "Shop" section
  • Admins can create shop items with: name, description, image (upload), price (currency + amount), stock limit (optional, null = unlimited), max-per-user limit (optional), active/inactive toggle
  • Admins can edit and delete (or archive) existing items
  • Items can be ordered/sorted for display
  • Bulk enable/disable items
Member-Facing Shop
  • Shop page at /community/:id/shop (or equivalent route)
  • Lists active items with image, name, description, price, stock status ("In stock" / "X remaining" / "Out of stock")
  • No purchase button in this ticket (placeholder "Buy" button is fine, wired up in payment issue)
  • Empty state if no items

Technical Notes

  • New DB table: shop_items
    • id, community_id (FK), name, description, image_url, price_cents (integer — avoid float), currency (default usd), stock (nullable integer), max_per_user (nullable integer), sort_order, active, sponsor_only (boolean, default false — wired up in gating issue), created_at, updated_at, deleted_at (soft delete)
  • Store price in smallest currency unit (cents) to avoid floating point rounding
  • Use existing image upload infrastructure for item images
  • Align item model with existing inventory/trait item model if one exists — shop items should eventually map to inventory item types

Dependencies

None — foundational, no prerequisites.

Future Scope

  • Sponsor-only item gating (separate issue, adds sponsor_only flag to this schema)
  • Stripe checkout integration (separate issue)
  • Bundle/pack items

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by locating the community settings and /community/:id/shop entry points, then inspect the existing image upload infrastructure and inventory/trait item model. Define the shop_items data model around the listed fields and follow the project’s conventions for admin and member-facing UI. Done means the admin management actions and member shop states in the acceptance criteria are covered, without purchase or sponsor gating.

Written by the indexing model from the issue text.

Assessment

Tech stack
typescript
Domain
databases, full-stack
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
45/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.