A modern, scalable car auction platform built with NestJS, React, PostgreSQL, Redis, and WebSocket technology.
- Real-time Live Bidding - WebSocket-powered auction participation
- Comprehensive Car Management - Detailed vehicle information and images
- Advanced Auction System - Scheduling, status management, automated processing
- Secure Authentication - JWT-based auth with role-based access control
- Real-time Notifications - Instant updates for bids and auction events
- Admin Dashboard - Complete user and auction management
- DDoS Protection - Rate limiting and abuse prevention
- Node.js 18+
- Docker & Docker Compose
- PostgreSQL 14+
- Redis 6+
- RabbitMQ 3.8+
-
Clone and install
git clone <repository-url> cd AuctionForge npm run install:all
-
Set up environment
cp backend/env.example backend/.env cp frontend/env.example frontend/.env # Edit .env files with your configuration -
Start services
# Start infrastructure docker-compose -f docker-compose.dev.yml up -d # Setup database cd backend npm run db:generate npm run db:migrate npm run db:seed # Start applications npm run dev
-
Access the application
- Frontend: http://localhost:5173
- Backend API: http://localhost:3000
- Admin Login:
admin@auctionforge.com/password123
┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐
│ Frontend │ │ Backend │ │ Infrastructure │
│ (React) │◄──►│ (NestJS) │◄──►│ (Docker) │
└─────────────────┘ └─────────────────┘ └─────────────────┘
│ │ │
│ ┌─────────────────┐ │
└─────────────►│ WebSocket │◄─────────────┘
│ Gateway │
└─────────────────┘
│
┌─────────────────┐ │ ┌─────────────────┐
│ PostgreSQL │ │ │ Redis │
│ Database │◄───┼───►│ Cache │
└─────────────────┘ │ └─────────────────┘
│
┌─────────────────┐
│ RabbitMQ │
│ Message Queue │
└─────────────────┘
npm run dev # Start both frontend and backend
npm run dev:backend # Start only backend
npm run dev:frontend # Start only frontend
npm run build # Build both projects
npm run lint # Lint all code
npm run test # Run all testscd backend
npm run db:generate # Generate Prisma client
npm run db:migrate # Run migrations
npm run db:seed # Seed with sample data
npm run db:studio # Open Prisma Studio- Framework: NestJS with TypeScript
- Database: PostgreSQL with Prisma ORM
- Cache: Redis
- Message Queue: RabbitMQ
- Real-time: Socket.IO
- Authentication: JWT with Passport
- Framework: React 18 with TypeScript
- Build Tool: Vite
- Styling: Tailwind CSS
- Real-time: Socket.IO Client
- HTTP Client: Axios
- Containerization: Docker & Docker Compose
- Process Management: PM2
- Code Quality: ESLint + Prettier
POST /auth/register- User registrationPOST /auth/login- User loginGET /auth/profile- Get user profile
GET /auctions- List auctionsPOST /auctions- Create auction (Admin)GET /auctions/:id- Get auction detailsPOST /auctions/:id/start- Start auction
POST /bids- Place a bidGET /bids/auction/:auctionId- Get auction bids
joinAuction- Join auction roomplaceBid- Place real-time bidbidUpdate- Real-time bid updates
- JWT Authentication with role-based access
- Rate limiting and DDoS protection
- Input validation and sanitization
- CORS configuration
- Audit logging
- Redis caching for sessions and data
- Database optimization with Prisma
- Message queuing with RabbitMQ
- Real-time WebSocket communication
- Connection pooling
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
This project is licensed under the MIT License.
AuctionForge - Where every car finds its perfect bidder! 🚗💎