Skip to content
View m-farahmand's full-sized avatar

Block or report m-farahmand

Block user

Prevent this user from interacting with your repositories and sending you notifications. Learn more about blocking users.

You must be logged in to block users.

Maximum 250 characters. Please don’t include any personal information such as legal names or email addresses. Markdown is supported. This note will only be visible to you.
Report abuse

Contact GitHub support about this user’s behavior. Learn more about reporting abuse.

Report abuse
m-farahmand/README.md

Farahmand Platform

Personal platform & software marketplace built with Next.js (adapted from the PRD's Nuxt 3 spec).

Features (MVP)

  • Public site: Home, About (timeline), Products, Product detail, Blog, Contact
  • E-commerce: Cart, manual checkout, order tracking
  • Admin panel: Dashboard, CRUD for products, timeline, blog, order management
  • API: REST routes under /api
  • Auth: JWT-based admin authentication

Tech Stack

  • Next.js 16 (App Router, TypeScript)
  • Tailwind CSS 4
  • Prisma ORM + SQLite (dev) — switch to PostgreSQL for production
  • Zod validation, Jose JWT, bcryptjs

Getting Started

cd web
npm install
npm run db:setup    # create DB + seed sample data
npm run dev         # http://localhost:3000 (set PORT in .env to change)

Admin Login

Change credentials in .env before deploying.

Project Structure

web/
├── prisma/           # Schema, migrations, seed
├── public/           # Static assets
└── src/
    ├── app/          # Pages & API routes
    │   ├── about/
    │   ├── products/
    │   ├── cart/
    │   ├── checkout/
    │   ├── blog/
    │   ├── contact/
    │   ├── admin/    # Admin panel
    │   └── api/      # REST API
    ├── components/
    ├── lib/          # Auth, Prisma, utils
    └── types/

API Endpoints

Method Endpoint Description
GET /api/products List products
GET /api/products/:slug Product detail
GET /api/timeline Timeline entries
GET /api/blog Blog posts
POST /api/orders Create order
POST /api/admin/auth Admin login

Environment Variables

Variable Default Description
PORT 3000 Dev/production server port
DATABASE_URL Database connection string
JWT_SECRET Secret for admin JWT tokens
ADMIN_EMAIL Seed admin email
ADMIN_PASSWORD Seed admin password

Production Notes

  1. Set JWT_SECRET to a strong random value
  2. Switch Prisma to PostgreSQL (provider = "postgresql" in schema)
  3. Update DATABASE_URL to your Postgres connection string
  4. Change default admin credentials

Future Enhancements (from PRD)

  • Stripe payment integration
  • Multi-language (i18n)
  • License keys for software
  • Subscription system
  • Media upload for products

Popular repositories Loading

  1. Power-Supply Power-Supply Public

    All Power supply schematics and battery chargers

    Makefile 2

  2. Typescript-jquery.inputmask Typescript-jquery.inputmask Public

    Forked from spaiter/Typescript-jquery.inputmask

    1

  3. Orchard Orchard Public

    Forked from OrchardCMS/Orchard

    Orchard is a free, open source, community-focused Content Management System built on the ASP.NET MVC platform.

    C# 1

  4. Parallax Parallax Public

    Forked from georgeroubie/responsive-theme-for-developers-orchard-cms

    Responsive Orchard CMS theme for developers

    C# 1

  5. AngularMaterialJalaliDate AngularMaterialJalaliDate Public

    Forked from peymanebrahimi/AngularMaterialJalaliDate

    TypeScript 1

  6. devportfolio devportfolio Public

    Forked from RyanFitzgerald/devportfolio

    A lightweight, customizable single-page personal portfolio website template built with JavaScript and Sass

    CSS 1