A secondhand marketplace where you can post items for sale, interact with sellers, save items you are interested in.

Overview

Curbside - the secondhand market place that's actually pleasant to use

Post items for sale, interact with sellers, save items you are interested in. All Curbside market profits get directed towards green initiatives.

Built With

Frontend

  • 🏗 React + Typescript
  • 🗺 Leaflet.js
  • 💄 SCSS and Bootstrap
  • 🧪 Jest, Cypress, and Testing Library

Backend

  • 🏗 Node.js + Express
  • 📦 PostgreSQL
  • 📊 Prisma
  • 📍 PostGIS Extension for Geo Queries
  • 🔌 Socket.io
  • 🔐 Firebase Authentication
  • 📔 Firebase Image Storage

Run it on your machine

Set up

  1. Create a Firebase app for authentication and image storage
  2. Create an empty PostgreSQL database as well as an empty test database (e.g. Curbside and Curbside_TEST)

Installation

  1. Fork and clone the repo
  2. Add the three .env files in client/ and server/ folders (see examples below)
  3. Install requirements with npm install from project root folder, /server and /client folders
  4. Generate Prisma artifacts and sync database schema with prisma client with npx prisma generate and npx prisma db push from /server folder.

Run

  1. Start the sever with npm start:server from project root folder;
  2. Start the app in the browser with npm start:client from project root folder;

Environmental Variables

  1. Create .env file in client/src folder:
# Firebase keys
REACT_APP_FIREBASE_API_KEY=
REACT_APP_FIREBASE_AUTH_DOMAIN=
REACT_APP_FIREBASE_PROJECT_ID=
REACT_APP_FIREBASE_STORAGE_BUCKET=
REACT_APP_FIREBASE_MESSAGING_SENDER_ID=
REACT_APP_FIREBASE_APP_ID=
REACT_APP_FIREBASE_MEASUREMENT_ID=

# Server URL
REACT_APP_BASE_API_URL=
  1. Create a /config folder in /server folder
  2. Create dev.env file in server/config folder:
# Server port
PORT=

# Local DB
DATABASE_URL="postgresql://username:password@localhost:5432/dbname?schema=public"

# Firebase storage
FIREBASE_ADMIN_PRIVATE_KEY=
FIREBASE_ADMIN_CLIENT_EMAIL=
FIREBASE_ADMIN_PROJECT_ID=
  1. Set up environment for tests (Skip this if running tests is not a priority)
    • Set up two users through your Firebase console and paste their UIDs in SECRET_UID and SECRET_UID2.
    • This will be needed to send valid requests that pass serverside token verification.
    • Create test.env file in server/config folder:
# Server port (note, should be other than for dev server)
PORT=4444

# Local test DB
DATABASE_URL="postgresql://username:password@localhost:5432/dbname_TEST?schema=public"

# Real users used for testing purposes
SECRET_UID=
SECRET_UID2=
FIREBASE_API_KEY=

# Firebase storage (same as dev)
FIREBASE_ADMIN_PRIVATE_KEY=
FIREBASE_ADMIN_CLIENT_EMAIL=
FIREBASE_ADMIN_PROJECT_ID=
You might also like...

Tool for GitHub/GitLab to keep Repositories/Projects you are interested in and their Pull/Merge Requests in desktop Tray Menu

Tool for GitHub/GitLab to keep Repositories/Projects you are interested in and their Pull/Merge Requests in desktop Tray Menu. More info in User Guide.

Jul 31, 2022

Been interested, studying, and developing blockchain security with a Zero Knowledge Proof (ZKP) and create a prototype on the current issue with Philippine's upcoming election. 📥

Been interested, studying, and developing blockchain security with a Zero Knowledge Proof (ZKP) and create a prototype on the current issue with Philippine's upcoming election. 📥

Implementation of Zero Knowledge Proofs in Cryptographic Voting 😎 Reference: Cryptographic Voting – A Gentle Introduction Overview 👨🏻‍💻 The main i

Apr 11, 2022

Project that aims to connect people interested in helping NGOs with open campaigns.

 Project that aims to connect people interested in helping NGOs with open campaigns.

bBE HERO!/b Technologies | Project | Layout | Getting started | How to contribute | License 🚀 Technologies This project was developed with the f

Sep 22, 2022

A free and open-source point-of-sale (POS) system for retail and wholesale businesses with support for multiple branches, stockkeeping locations, POS profiles and price lists.

Note: This is a beta version of the software. You are advised to proceed with caution! Overview A free and open-source point-of-sale (POS) system for

Jan 27, 2022

Filter sale 1K gần bạn

Filter sale 1K gần bạn Tại sao lại có cái này? Đôi khi bạn sẽ nhận được (hoặc săn được) voucher freeship đơn 0đ của shopee (10k hoặc 25k), và phí ship

Nov 25, 2022

Free to use and not for sale. This repo uses scrape or data.json

Aine-MD This script is free, if caught sold, this script will be deleted immediately. Don't forget to follow my github Script ini gratis, Jika ketahua

Dec 30, 2022

A single-page application that allow users to add their To Do items. The items could be checked as completed and the completed task can be removed. Built with JavaScript, HTML and CSS

To Do list Application This is a single page application that allows users to keep track of their tasks. Users can add the task and also check the che

Oct 14, 2022

🚀👩‍🚀This repo contains all the files to follow along and implement a MultiChain NFT MarketPlace! Be sure to watch my Youtube tutorials so you can learn and follow along!

🚀👩‍🚀This repo contains all the files to follow along and implement a MultiChain NFT MarketPlace! Be sure to watch my Youtube tutorials so you can learn and follow along!

Multi-Chain NFT Marketplace 🚀 👩‍🚀 This repo contains all the files to follow along and implement a MultiChain NFT MarketPlace! Be sure to watch my

Jan 5, 2023
NFT Marketplace framework to build standalone NFT marketplace or inApp/inGame NFT marketplace

NFT Marketplace This project is a decentalized NFT Marketplace framework which is to be the baseline for you to build standalone NFT marketplace or in

Reddio, inc. 14 Dec 19, 2022
NFTKastle is an NFT marketplace where users can mint their pictures as NFTs, list their NFTs for sale, and buy NFTs from other users.

NFTKastle NFTKastle is an NFT marketplace where users can mint their pictures as NFTs, list their NFTs for sale, and buy NFTs from other users. NFTKas

Paschal 2 Oct 31, 2022
NewsStation is a news app which can be used to grab daily news bites. If you are interested in news whether politics, business, entertainment, general, health, science, sports and technology news NewsStation is for you!

This is a NewsStation WebApp Project Using News API NewsStation is a news app which can be used to grab daily news bites. If you are interested in new

Ravi Chauhan 2 Feb 7, 2022
Move all the disks from the left hand post to the right hand post, only moving the disks one at a time and a bigger disk can never be placed on a smaller disk.

Hanoi Tower Description The Tower of Hanoi was a famous problem posed by a mathematician in 1883, The "puzzle" is to move all the disks from the left

Dustin J Sellers 1 Feb 5, 2022
Grupprojekt för kurserna 'Javascript med Ramverk' och 'Agil Utveckling'

JavaScript-med-Ramverk-Laboration-3 Grupprojektet för kurserna Javascript med Ramverk och Agil Utveckling. Utvecklingsguide För information om hur utv

Svante Jonsson IT-Högskolan 3 May 18, 2022
Hemsida för personer i Sverige som kan och vill erbjuda boende till människor på flykt

Getting Started with Create React App This project was bootstrapped with Create React App. Available Scripts In the project directory, you can run: np

null 4 May 3, 2022
Kurs-repo för kursen Webbserver och Databaser

Webbserver och databaser This repository is meant for CME students to access exercises and codealongs that happen throughout the course. I hope you wi

null 14 Jan 3, 2023
A simple To Do List application that allows users to save, edit, mark completed, and delete their to-dos, and save their list when application is closed. Build with JavaScript.

To Do List A simple To Do List online application that allows users to save, and manipulate their to-dos, and save their list when application is clos

Mahmoud Rizk 10 Dec 20, 2022
View maps, graphs, and tables of your save and compete in a casual, evergreen leaderboard of EU4 achievement speed runs. Upload and share your save with the world.

PDX Tools PDX Tools is a modern EU4 save file analyzer that allow users to view maps, graphs, and data tables of their save all within the browser. If

PDX Tools 24 Dec 27, 2022