This project uses Go microservices with PostgreSQL databases and a REST gateway.
- Clone the repository and enter it.
- Download the dataset from Kaggle (this link) and place it under code/setup. You can download the dataset from .
To run the application entirely on your local machine using Docker:
- Prepare dataset artifacts:
./scripts/local/prepare.sh- Start services and databases:
./scripts/local/start.sh- Seed listing data:
./scripts/local/seed.shRead the sections carefully, as some scripts only need to be run once.
- Bootstrap Environment(Run once per machine)
./scripts/cloud/bootstrap_env.sh- Deploy all Kubernetes manifests:
./scripts/cloud/k8s.sh up- Deploy including ingress:
./scripts/cloud/k8s.sh up --with-ingress- Check deployment status:
./scripts/cloud/k8s.sh status- Remove deployment:
./scripts/cloud/k8s.sh downBase URL: http://localhost:8080 (local) if in Cloud replace with your Ingress IP
GET /api/listings/searchGET /api/listings/compareGET /api/listings/{id}POST /api/chat/openGET /api/chat/{chat_id}GET /api/market/insights/aggregatesGET /api/market/price-comparisonGET /api/listings/stats/by-locationGET /api/market/average-priceGET /api/auctionsPOST /api/auctionsGET /api/auctions/{auction_id}DELETE /api/auctions/{auction_id}POST /api/auctions/{auction_id}/bidGET /api/auctions/{auction_id}/bidsPOST /api/auth/registerPOST /api/auth/loginGET /api/users/me/favoritesPOST /api/users/me/favorites/{listing_id}DELETE /api/users/me/favorites/{listing_id}GET /api/sellers/{seller_id}
- Search:
localhost:50056(orlocalhost:50156if50056is busy and./start.shapplies fallback) - Listing:
localhost:50054 - Auth:
localhost:50053 - User:
localhost:50058 - Seller:
localhost:50057 - MarketPrice:
localhost:50055 - Auction:
localhost:50051
- Auction WS:
ws://localhost:8081/ws/auction/{auctionID} - Chat WS route (service route):
/ws/chat/{chatID}
See full contract in api/API.yaml.