Logo Lanfrica

MrSilMan/dollars-shop

Domaine:

digital infrastructure

Type de record:

software
Créateur:
MrS
Hôte:
An e-commerce for Zimbabwe # Dollar Shop Zimbabwe Full-stack e-commerce platform for Dollar Shop Zimbabwe — everyday essentials, groceries, household goods, and personal care products with EcoCash and InnBucks mobile money payments. **Stack:** Next.js 16 · Prisma 7 · PostgreSQL · Redis · Tailwind CSS v4 · NextAuth v5 --- ## Prerequisites - Node.js 22+ - Docker & Docker Compose - `npm` (or compatible package manager) --- ## Local Development Setup ### 1. Clone and install dependencies ```bash git clone cd dollar-shop npm install ``` ### 2. Configure environment variables ```bash cp .env.example .env.local ``` Edit `.env.local` and fill in the required values. For local development the defaults work for the database and Redis if you use Docker Compose. | Variable | Description | |---|---| | `DATABASE_URL` | PostgreSQL connection string | | `REDIS_URL` | Redis connection string | | `AUTH_SECRET` | Random 32+ character secret for NextAuth | | `NEXTAUTH_URL` | Base URL (e.g. `localhost`) | | `ECOCASH_*` | EcoCash merchant credentials | | `INNBUCKS_*` | InnBucks merchant credentials | | `SENTRY_DSN` | Sentry DSN for error monitoring | | `PAYMENT_MODE` | `sandbox` (no real payments) or `live` | ### 3. Start database and Redis with Docker ```bash docker compose up db redis -d ``` This starts: - PostgreSQL 16 on port `5432` - Redis 7 on port `6379` ### 4. Generate Prisma client ```bash npx prisma generate ``` ### 5. Run database migrations ```bash npm run db:migrate ``` ### 6. Seed the database ```bash npm run db:seed ``` This creates: - 8 product categories (Household, Groceries, Personal Care, Baby & Kids, etc.) - 30 sample products with realistic prices - Admin user: `admin@dollarshop.co.zw` / `admin123!` ### 7. Start the development server ```bash npm run dev ``` Open localhost. Admin panel: localhost --- ## Available Scripts | Script | Description | |---|---| | `npm run dev` | Start development server with hot reload | | `npm …