GitHub - pradipNP/ferilo-ecommerce-FullstackWebsite: Open-source E-commerce marketplace (React + Node + PostgreSQL). Second-hand shopping for Nepal — listings, cart-style orders, offers, chat, admin. Live demo. Star & contribute! · GitHub
Skip to content

Repository files navigation

FERILO

Buy. Sell. Give It Another Life.

FERILO is an open-source ecommerce / marketplace project — a peer-to-peer second-hand shopping platform focused on Nepal’s Lumbini region (Rupandehi & Kapilvastu). Think of it as ecommerce website source code for local classifieds: buyers and sellers, product catalogs, checkout-style orders (meetup or delivery), and an admin panel.

Sellers can complete an in-app identity verification workflow (document upload + admin review). That is a product feature for trust on the platform, not a government license, registration, or official endorsement.

Built as a full-stack learning / portfolio ecommerce app you can clone, run locally, or explore on the live demo: listings, search & filters, offers, messaging, orders, reviews, notifications, reports, and moderation.

Live demo

Service URL
Website https://ferilo.pages.dev
API https://ferilo.onrender.com
Health https://ferilo.onrender.com/api/v1/health

Notes

  • Free Render / Neon tiers can sleep. The first visit may take 30–60 seconds. The UI shows Offline preview — connecting… until the API wakes, then Live from database.
  • CLIENT_URL on Render must be exactly https://ferilo.pages.dev (no trailing slash).

Demo accounts

Use these after npm run db:seed (local or Neon). Passwords are for exploration only — change them before any real production use.

Role Email Password What you can try
Admin admin@ferilo.local testing01 Admin dashboard, verifications, reports, listings moderation
Buyer buyer@ferilo.local demo1234 Browse, favorites, offers, orders, messages
Seller seller@ferilo.local demo1234 Seller flows (listings require in-app verification status)

Optional demo listings (~210 ACTIVE items with photos):

npm run db:seed-products

Offline / API-down demo login

If the backend is unreachable, login still opens a portfolio offline session:

Role Email Password
Demo buyer demo@ferilo.local any (e.g. demo)
Demo admin admin@ferilo.local any (e.g. demo) — email must contain admin

Offline mode uses hardcoded sample data. Writes (create listing, place order, etc.) are blocked with a clear message.

Screenshots

FERILO home hero
Home — hero & live status
Browse by city
Browse by city — Lumbini region hubs
Featured listings
Featured listings — product cards
Browse listings with filters
All items — search & filters
User dashboard
User dashboard — listings, offers, orders
Admin dashboard
Admin dashboard — users & moderation

Features

  • Full-stack ecommerce marketplace flows (browse → offer/message → order)
  • Registration & JWT auth (access token + HttpOnly refresh cookie)
  • Identity verification workflow (user docs + admin review — not a government certification)
  • Product listings, images, categories, search & filters
  • Favorites, offers/negotiation, messaging
  • Orders (meetup & delivery) with delivery quote calculator
  • Reviews & reputation, in-app notifications
  • Reports & admin moderation
  • Rate limiting, Helmet, Zod validation
  • Portfolio offline fallback when Neon/Render are asleep

Tech stack

Layer Technology
Frontend React, JavaScript, Vite, React Router, Axios, CSS
Backend Node.js, Express, JavaScript, JWT, Zod
Database PostgreSQL
Testing Node.js built-in test runner
Type Open-source ecommerce / C2C marketplace

Prerequisites

  • Node.js 20+
  • PostgreSQL 16+ (or Docker)
  • npm 10+

Quick start

git clone https://github.com/pradipNP/ferilo-ecommerce-FullstackWebsite.git
cd ferilo-ecommerce-FullstackWebsite
npm install
cp .env.example .env

Start Postgres (Docker example):

npm run db:up

Create tables, seed categories/delivery rules, and demo users:

npm run db:setup

Optional product catalog:

npm run db:seed-products

Run the app:

npm run dev

Default Docker DATABASE_URL:

DATABASE_URL=postgresql://postgres:postgres@localhost:5432/ferilo

Never commit a real .env. Copy from .env.example.

Useful commands

Command Description
npm run dev Frontend + backend
npm run build Production frontend build
npm run lint Lint backend + frontend
npm test Backend tests
npm run db:migrate Apply schema
npm run db:seed Seed categories, zones, admin + demo users
npm run db:seed-products Seed demo listings
npm run db:setup Migrate + seed

Deploy (Neon + Render + Cloudflare)

Full guide: docs/deployment.md

Current public stack:

Piece Host
Database Neon
API Render (ferilo.onrender.com)
Frontend Cloudflare Pages (ferilo.pages.dev)

Contributing

Contributions are welcome. See CONTRIBUTING.md.

Suggested starter tasks: see open GitHub Issues (labels good first issue, help wanted).
Issue ideas for maintainers: docs/github-issues.md.

Support / Star the project

If FERILO helps you — as a learning resource, portfolio reference, or marketplace starter — please star the repository on GitHub. It helps others discover the project and supports continued development.

Star FERILO on GitHub

Documentation

Security note

Demo passwords are public by design for this portfolio demo. Rotate JWT_SECRET, JWT_REFRESH_SECRET, and all passwords before any serious production deployment. Do not commit secrets.

License

This project is licensed under the MIT License.

About

Open-source E-commerce marketplace (React + Node + PostgreSQL). Second-hand shopping for Nepal — listings, cart-style orders, offers, chat, admin. Live demo. Star & contribute!

Topics

Resources

Contributing

Security policy

Stars

1 star

Watchers

0 watching

Forks

Contributors

Languages