gRPC-based microservice for managing auctions and bids in real-time.
cp .env.example .envEdit .env with your configuration (database credentials, gRPC port, etc.)
Install dependencies:
Install uv with standalone installers:
# On macOS and Linux.
curl -LsSf https://astral.sh/uv/install.sh | sh# On Windows.
powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"Or, from PyPI:
# With pip.
pip install uv# Or pipx.
pipx install uvInstall project dependencies:
uv syncGenerate gRPC stubs:
./generate_grpc.shRun the service:
uv run python -m app.mainService will start on localhost:50051
docker compose upThis starts both the auction service (on localhost:50054) and PostgreSQL database.
- StartAuction - Create a new auction with starting price and end time
- PlaceBid - Place a bid on an active auction
- GetAuctionStatus - Get current auction status with highest bidder
- GetAuctionEnd - Retrieve auction end time
- GetAuctionWinner - Get the winning bid and user after auction ends
- GetBidHistory - View all bids for a specific auction
- gRPC / Protocol Buffers
- SQLAlchemy (PostgreSQL)
- uv for dependency management
- Background auction closer worker