A decentralized job marketplace and payment system built with React, Node.js, and PostgreSQL.
- Job Marketplace: Post and find jobs with blockchain-based payments
- GPS-based Payments: Automated payment system using GPS verification
- Smart Contracts: Ethereum-based smart contracts for secure transactions
- User Authentication: Secure login and registration system
- Dashboard: Separate dashboards for employers and employees
- Dispute Resolution: Built-in dispute handling system
- React 18
- Vite
- React Router
- Axios for API calls
- Node.js
- Express.js
- PostgreSQL database
- JWT authentication
- Ethereum smart contracts
- Web3.js for blockchain interactions
- Docker & Docker Compose
- PostgreSQL 15
- Node.js 18+
- Docker & Docker Compose
- Git
- Clone the repository:
git clone <repository-url>
cd lucid-ledger
- Create environment files:
# Create server/.env
cp server/ server/.env
# Create client/.env
cp client/ client/.env
- Build and run with Docker:
docker compose up --build
The application will be available at:
- Frontend: http://localhost:5173
- Backend API: http://localhost:5001
- PostgreSQL: localhost:5432
- Install dependencies:
# Backend
cd server
npm install
# Frontend
cd ../client
npm install
- Set up PostgreSQL database:
# Run the init.sql script in your PostgreSQL instance
- Start the services:
# Backend
cd server
npm start
# Frontend (in a new terminal)
cd client
npm run dev
PORT=5001
DB_HOST=localhost
DB_PORT=5432
DB_NAME=lucid_ledger_db
DB_USER=lucid_user
DB_PASSWORD=your_password
JWT_SECRET=your_jwt_secret
VITE_API_URL=http://localhost:5001
VITE_WEB3_PROVIDER=your_ethereum_provider_url
lucid-ledger/
├── client/ # React frontend
│ ├── src/
│ │ ├── components/ # React components
│ │ ├── pages/ # Page components
│ │ ├── api/ # API client
│ │ └── contracts/ # Smart contract interactions
│ └── Dockerfile
├── server/ # Node.js backend
│ ├── controllers/ # Route controllers
│ ├── models/ # Database models
│ ├── routes/ # API routes
│ ├── middleware/ # Custom middleware
│ └── Dockerfile
├── docker-compose.yml # Docker configuration
└── README.md
POST /api/auth/register
- User registrationPOST /api/auth/login
- User loginGET /api/auth/profile
- Get user profile
GET /api/jobs
- Get all jobsPOST /api/jobs
- Create new jobGET /api/jobs/:id
- Get job detailsPUT /api/jobs/:id
- Update job
GET /api/contracts
- Get user contractsPOST /api/contracts
- Create contractPUT /api/contracts/:id
- Update contract status
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature
) - Commit your changes (
git commit -m 'Add some amazing feature'
) - Push to the branch (
git push origin feature/amazing-feature
) - Open a Pull Request
For support, email [email protected] or create an issue in this repository. # Test CI/CD