A full-stack car auction application built with .NET microservices backend and React frontend.
- Browse Auctions - View all available car auctions
- Advanced Search - Search by make, model, or color
- Smart Filters - Filter by Live, Ending Soon, or Finished
- Authentication - Secure login with OIDC/OAuth2
- Create Auctions - List your car for auction (authenticated)
- Manage Auctions - View and delete your listings
- Real-time Updates - Event-driven architecture with RabbitMQ
- Responsive Design - Works on desktop, tablet, and mobile
- Frontend Service - React + Vite + Tailwind CSS
- Gateway Service - YARP Reverse Proxy
- Identity Service - Duende IdentityServer (OIDC)
- Auction Service - CRUD operations for auctions
- Search Service - Full-text search with MongoDB
- Bidding Service - (Coming soon)
- PostgreSQL - Auction and Identity data
- MongoDB - Search indexes
- RabbitMQ - Message bus for events
- Docker - Containerization
- Nginx - Frontend web server
- Docker & Docker Compose
- Node.js 18+ (for local frontend development)
cd Carauction
docker-compose up --build- Frontend: http://localhost:3000
- Identity Server: http://localhost:5000
- API Gateway: http://localhost:5004
- RabbitMQ Management: http://localhost:15672 (guest/guest)
- Username:
bob/ Password:Pass123$ - Username:
alice/ Password:Pass123$
Or register a new account through the UI.
- Quick Start Guide - Get up and running fast
- Architecture - System design and data flow
- Frontend Summary - Frontend features and tech
- Updates - Recent changes and fixes
- Troubleshooting - Common issues and solutions
- React 18
- Vite
- Tailwind CSS
- React Router v6
- OIDC Authentication
- Axios
- React Hot Toast
- .NET 10
- Entity Framework Core
- Duende IdentityServer
- YARP (Reverse Proxy)
- MassTransit + RabbitMQ
- AutoMapper
- PostgreSQL 16
- MongoDB
- Docker
- Docker Compose
- Nginx
Carauction/
βββ src/
β βββ AuctionService/ # Auction CRUD
β βββ SearchService/ # Search & Filter
β βββ IdentityService/ # Authentication
β βββ GatewayService/ # API Gateway
β βββ BiddingService/ # Bidding (WIP)
β βββ FrontendService/ # React UI
β βββ Contracts/ # Shared contracts
βββ docker-compose.yml # Docker orchestration
βββ Carauction.slnx # Solution file
# Run with Docker
cd Carauction
docker-compose up
# Or run individually with .NET
cd src/AuctionService
dotnet run# Development mode
cd Carauction/src/FrontendService
npm install
npm run dev
# Production build
npm run build# Search by make
curl "http://localhost:5004/api/search?searchTerm=Ford"
# Search by model
curl "http://localhost:5004/api/search?searchTerm=Mustang"
# Filter by status
curl "http://localhost:5004/api/search?filterBy=live"- Go to http://localhost:3000
- Click "Login"
- Enter credentials
- Try creating an auction
GET /api/search- Search auctions- Query params:
searchTerm,filterBy,seller,winner
- Query params:
GET /api/auctions- Get all auctionsGET /api/auctions/{id}- Get auction by IDPOST /api/auctions- Create auction (auth required)PUT /api/auctions/{id}- Update auction (auth required)DELETE /api/auctions/{id}- Delete auction (auth required)
GET /.well-known/openid-configuration- OIDC discoveryPOST /connect/token- Get access token
- Authentication: OIDC/OAuth2 with IdentityServer
- Authorization: JWT Bearer tokens
- CORS: Configured for frontend origin
- Protected Routes: Create, Update, Delete require authentication
- Modern gradient design
- Smooth animations
- Responsive layout
- Loading states
- Error handling
- Toast notifications
- Empty states
- Mobile menu
Services communicate via RabbitMQ:
AuctionCreatedβ Search Service updates indexAuctionUpdatedβ Search Service updates indexAuctionDeletedβ Search Service removes from indexBidPlacedβ Auction Service updates bid (future)
See TROUBLESHOOTING.md for common issues.
Quick fixes:
# Restart all services
docker-compose restart
# Fresh start
docker-compose down -v
docker-compose up --build
# Check logs
docker-compose logs -f- MongoDB text index now includes Model field
- Search works for make, model, and color
- Vite + React 18 (replaced deprecated CRA)
- Full OIDC authentication
- Complete CRUD operations
- Modern Tailwind CSS design
- Responsive mobile layout
- Bidding Service integration
- Real-time bid updates (SignalR)
- Image upload functionality
- Email notifications
- Payment integration
- Admin dashboard
- Auction analytics
This is a practice project for learning microservices architecture.
This is a personal learning project, but feel free to fork and experiment!
If you encounter issues:
- Check TROUBLESHOOTING.md
- Review logs:
docker-compose logs -f - Try fresh start:
docker-compose down -v && docker-compose up --build
Built with β€οΈ using .NET Microservices + React