A lead-first marketplace platform for buying and selling used equipment.
- Browse & Search: Advanced filtering and search capabilities
- Listing Management: Create detailed equipment listings with photos and documents
- Messaging System: Real-time buyer-seller communication with quote negotiations
- User Dashboards: Separate interfaces for buyers and sellers
- Admin Moderation: Content review and user verification system
- Optional Escrow: Secure payment processing for transactions
- Trust & Safety: User verification, reviews, and reporting system
- React 18 with TypeScript
- Vite for build tooling
- Tailwind CSS for styling
- React Query for state management
- React Router for navigation
- Socket.io for real-time messaging
- Node.js with Express and TypeScript
- PostgreSQL database with Prisma ORM
- Redis for caching and sessions
- JWT authentication
- Socket.io for real-time features
- AWS S3 for file storage
- Node.js 18+
- PostgreSQL 14+
- Redis 6+
- AWS S3 account (for file storage)
-
Clone the repository
-
Install dependencies:
npm run install:all
-
Set up environment variables:
cp backend/.env.example backend/.env cp frontend/.env.example frontend/.env
-
Configure your database and other services in the
.envfiles -
Run database migrations:
cd backend && npm run migrate
-
Seed the database:
cd backend && npm run db:seed
Start both frontend and backend in development mode:
npm run devOr run them separately:
# Backend (http://localhost:3001)
npm run dev:backend
# Frontend (http://localhost:3000)
npm run dev:frontendRun all tests:
npm testRun tests for specific parts:
npm run test:backend
npm run test:frontendnpm run buildequipment-marketplace/
├── backend/ # Node.js API server
│ ├── src/
│ │ ├── routes/ # API route handlers
│ │ ├── services/ # Business logic
│ │ ├── middleware/ # Express middleware
│ │ ├── models/ # Data models and types
│ │ ├── utils/ # Utility functions
│ │ └── tests/ # Backend tests
│ ├── prisma/ # Database schema and migrations
│ └── package.json
├── frontend/ # React application
│ ├── src/
│ │ ├── components/ # React components
│ │ ├── pages/ # Page components
│ │ ├── hooks/ # Custom React hooks
│ │ ├── services/ # API client functions
│ │ ├── types/ # TypeScript type definitions
│ │ ├── utils/ # Utility functions
│ │ └── tests/ # Frontend tests
│ └── package.json
└── package.json # Root package.json for scripts
The API follows RESTful conventions. Key endpoints:
POST /api/auth/register- User registrationPOST /api/auth/login- User loginGET /api/listings- Browse listingsPOST /api/listings- Create listingGET /api/messages/conversations- Get user conversationsPOST /api/messages- Send message
- Fork the repository
- Create a feature branch
- Make your changes
- Add tests for new functionality
- Ensure all tests pass
- Submit a pull request
MIT License