Home
Softono
SixMarket

SixMarket

Open source MIT TypeScript
13
Stars
13
Forks
0
Issues
2
Watchers
4 months
Last Commit

About SixMarket

đź›’ An online classifieds platform. Build with Next.js 12 + TypeScript. I am no longer working on it, but feel free to use it under its MIT license.

Platforms

Web Self-hosted

Languages

TypeScript

Marketplace is an open source classfields website.

Image previews:

marketplace-five-alpha vercel app_profile (1) marketplace-five-alpha vercel app_profile (2) marketplace-five-alpha vercel app_ (3) marketplace-five-alpha vercel app_ (4) marketplace-five-alpha vercel app_profile

Entity relationship diagram

![ERD](https://github.com/swapnil233/marketplace/assets/36313876/239c6af3-e653-4e5d-b79d-c66278041b17)

How to run on your machine:

  1. git clone https://github.com/swapnil233/marketplace.git
  2. npm install to get all the dependencies
  3. Get an instance of Postgres running and create a database, name it whatever (eg "marketplace").
  4. If you want to use Supabase to host the DB instead of your machine, make a DB in Supabase, then go into settings and get the regular connection string and the connection string with PgBouncer. This needs to be done for connection pooling, because if you deploy to a serverless env like Vercel or AWS Amplify, every function invocation may result in a new connection to the database. The connection strings will look like this:
  • DIRECT_URL="postgres://postgres:[YOUR-PASSWORD]@db.[YOUR-PROJECT-REF].supabase.co:5432/postgres"
  • DATABASE_URL="postgres://postgres:[YOUR-PASSWORD]@db.[YOUR-PROJECT-REF].supabase.co:6543/postgres?pgbouncer=true"
  1. Create a .env file, and populate it with the data that's required, which is found in .env.example
  2. Run npx prisma generate and npx prisma db push to upload the schema into your DB and generate the TypeScript types for the schema models
  3. Seed your database with categories and tags by running npm run seed
  4. Run npm run dev to start the nextjs project on port 3003 (you can change this in package.json under the dev script)

Upcoming Features

  • [ ] Map view
  • [ ] Search by query or query + category
  • [ ] Location based results
  • [ ] Pagination
  • [ ] Dark mode
  • [ ] Recommendations algorithm, utilizing something like the Term Frequency-Inverse Document Frequency (TF-IDF) technique with a vector DB + cosine similarity.