chore: provision README.md [WCL auto]
This commit is contained in:
parent
d93b5e678f
commit
0b5f37b56f
1 changed files with 20 additions and 82 deletions
102
README.md
102
README.md
|
|
@ -1,94 +1,32 @@
|
||||||
# NoShop
|
# NotShop Bundle
|
||||||
|
|
||||||
**Open-source headless commerce for Replit.** Fork it, configure secrets, and have a production-ready store running in minutes.
|
**The first WCL-licensed release bundle.**
|
||||||
|
|
||||||
Live demo: [naturologie.com](https://naturologie.com)
|
NotShop is the "not on Amazon" local business directory — a component of the WellSpr.ing
|
||||||
Repo: [git.wellspr.ing/WellBuilder/notshop-bundle](https://git.wellspr.ing/WellBuilder/notshop-bundle)
|
civic platform that surfaces small, local, non-extractive businesses in a community.
|
||||||
|
|
||||||
---
|
## License
|
||||||
|
|
||||||
## Features
|
Licensed under WCL-1.1. See https://wellspr.ing/license/wcl-1.1
|
||||||
|
Node registry: https://git.wellspr.ing/WellBuilder/wcl-nodes
|
||||||
|
|
||||||
- **Full storefront** — product grid, product detail, cart drawer, checkout
|
## What this bundle includes
|
||||||
- **Authorize.net** — primary payment gateway via Accept.js (PCI-compliant tokenized nonces)
|
|
||||||
- **Stripe** — optional secondary gateway (env-var toggle)
|
|
||||||
- **Magic-link auth** — passwordless customer sign-in via Resend email
|
|
||||||
- **Account dashboard** — order history with tracking
|
|
||||||
- **Discount codes** — percentage or fixed, usage limits, expiry
|
|
||||||
- **Admin panel** — orders, products, customers, discounts with full CRUD
|
|
||||||
- **PostgreSQL + Drizzle ORM** — type-safe schema, one-command migrations
|
|
||||||
- **React 18 + Vite** — instant HMR in dev, single bundle in production
|
|
||||||
- **TypeScript** — end-to-end type safety
|
|
||||||
|
|
||||||
---
|
This repository is the canonical bundle for the NotShop release. It includes:
|
||||||
|
|
||||||
## Quick start on Replit
|
- NotShop directory component spec
|
||||||
|
- WCL-1.1 license text (see `LICENSE.md`)
|
||||||
|
- Deployment notes
|
||||||
|
|
||||||
1. Fork this repo on [git.wellspr.ing](https://git.wellspr.ing/WellBuilder/notshop-bundle)
|
## Live instance
|
||||||
2. Import the fork into Replit (Import from Git)
|
|
||||||
3. Add [required secrets](#required-secrets) in **Replit → Secrets**
|
|
||||||
4. Run the dev workflow — it auto-runs `npm run dev`
|
|
||||||
5. Push your schema: `npm run db:push`
|
|
||||||
6. Seed first admin: `npm run db:seed`
|
|
||||||
7. Visit `/admin` and log in
|
|
||||||
|
|
||||||
---
|
NotShop is live at https://notshop.org
|
||||||
|
NotGit sovereign stack cookbook: https://notgit.org
|
||||||
|
|
||||||
## Required secrets
|
## Sovereign deployment
|
||||||
|
|
||||||
| Secret | Description |
|
To deploy your own NotShop node:
|
||||||
|--------|-------------|
|
|
||||||
| `DATABASE_URL` | PostgreSQL connection string |
|
|
||||||
| `SESSION_SECRET` | Long random string for session signing |
|
|
||||||
| `AUTHORIZE_NET_API_LOGIN_ID` | Authorize.net API login ID |
|
|
||||||
| `AUTHORIZE_NET_TRANSACTION_KEY` | Authorize.net transaction key |
|
|
||||||
| `AUTHORIZE_NET_PUBLIC_CLIENT_KEY` | Authorize.net public client key (Accept.js) |
|
|
||||||
| `AUTHORIZE_NET_SANDBOX` | `true` for sandbox, `false` for live |
|
|
||||||
| `RESEND_API_KEY` | [Resend](https://resend.com) API key for magic-link emails |
|
|
||||||
| `STORE_NAME` | Display name of your store |
|
|
||||||
| `STORE_EMAIL_FROM` | From-address for transactional emails |
|
|
||||||
|
|
||||||
## Optional secrets (Stripe)
|
1. Follow the NotGit sovereign stack cookbook at https://notgit.org
|
||||||
|
2. License your deployment under WCL-1.1
|
||||||
| Secret | Description |
|
3. Register your node at https://git.wellspr.ing/WellBuilder/wcl-nodes
|
||||||
|--------|-------------|
|
|
||||||
| `STRIPE_SECRET_KEY` | Stripe secret key — enables Stripe at checkout |
|
|
||||||
| `STRIPE_PUBLISHABLE_KEY` | Stripe publishable key (exposed to frontend) |
|
|
||||||
|
|
||||||
> When `STRIPE_SECRET_KEY` is set, customers see a "Stripe" payment option alongside the Authorize.net card form.
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## Project structure
|
|
||||||
|
|
||||||
```
|
|
||||||
notshop-bundle/
|
|
||||||
├── client/src/
|
|
||||||
│ ├── pages/ # Storefront pages (shop, product, cart, checkout, account)
|
|
||||||
│ ├── pages/admin/ # Admin panel (dashboard, orders, products, customers, discounts)
|
|
||||||
│ ├── components/layout/ # Header, Footer, CartDrawer
|
|
||||||
│ ├── hooks/ # use-cart, use-toast
|
|
||||||
│ ├── lib/ # queryClient + apiRequest
|
|
||||||
│ └── index.css # Tailwind + CSS variables (customize theme here)
|
|
||||||
├── server/
|
|
||||||
│ ├── routes.ts # All API endpoints
|
|
||||||
│ ├── db.ts # Drizzle + pg pool
|
|
||||||
│ ├── auth.ts # Magic-link auth
|
|
||||||
│ ├── payments/
|
|
||||||
│ │ ├── authorizenet.ts # Accept.js nonce charge, vault, refund
|
|
||||||
│ │ └── stripe.ts # Stripe payment intent
|
|
||||||
│ └── email.ts # Resend email helpers
|
|
||||||
├── shared/
|
|
||||||
│ └── schema.ts # Drizzle schema (single source of truth)
|
|
||||||
├── scripts/
|
|
||||||
│ └── seed-admin.ts # Create first admin user
|
|
||||||
├── .env.example # Copy to .env and fill in values
|
|
||||||
└── CONFIGURE.md # Customization guide
|
|
||||||
```
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## Contributing
|
|
||||||
|
|
||||||
Submit PRs to [WellBuilder/notshop-bundle](https://git.wellspr.ing/WellBuilder/notshop-bundle).
|
|
||||||
License: MIT
|
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue