A modern real-time auction platform for collectibles and art pieces, featuring AI-powered bidding insights and real-time notifications.
- Real-time Bidding: Live auction updates using Socket.IO
- User Authentication: Secure JWT-based authentication system
- Item Management: Browse and search auction items with detailed views
- Bid History: Complete bidding history and tracking
- Smart Analysis: AI-powered item valuation using Google Gemini 1.5 Flash
- Price Prediction: Intelligent price forecasting based on market trends
- Bidding Strategy: Personalized bidding recommendations
- Responsive Design: Mobile-first approach with Tailwind CSS
- Real-time Notifications: Instant updates for bid activities
- Countdown Timers: Live auction end-time tracking
- Professional UI: Clean, gallery-inspired interface
- React 19 - Modern UI library
- React Router Dom 7 - Client-side routing
- Tailwind CSS 3 - Utility-first styling
- Vite 7 - Fast build tool and dev server
- Socket.IO Client - Real-time communication
- Axios - HTTP client
- React Hook Form - Form handling
- SweetAlert2 - Enhanced notifications
- Node.js - Runtime environment
- Express.js - Web application framework
- Socket.IO - Real-time bidirectional communication
- Sequelize - PostgreSQL ORM
- PostgreSQL - Primary database
- JWT - Authentication tokens
- bcryptjs - Password hashing
- Google Gemini 1.5 Flash - AI analysis and predictions
- Custom AI Services - Price prediction and bidding strategies
- Node.js (v18 or higher)
- PostgreSQL (v12 or higher)
- npm or yarn package manager
- Navigate to the server directory:
cd server- Install dependencies:
npm install- Configure environment variables:
cp .env.example .envEdit the .env file with your configuration:
NODE_ENV=development
PORT=3001
DB_HOST=localhost
DB_PORT=5432
DB_NAME=artify_db
DB_USERNAME=postgres
DB_PASSWORD=your_password
JWT_SECRET=your_jwt_secret
GEMINI_API_KEY=your_gemini_api_key
SOCKET_CORS_ORIGIN=http://localhost:3000- Setup database:
npm run db:create
npm run db:migrate
npm run db:seed- Start the server:
npm run dev- Navigate to the client directory:
cd client- Install dependencies:
npm install- Start the development server:
npm run devThe application will be available at:
- Frontend: http://localhost:3000
- Backend API: http://localhost:3001
The API provides comprehensive endpoints for authentication, item management, bidding, and AI features. Key endpoints include:
POST /api/auth/register- User registrationPOST /api/auth/login- User login
GET /api/items- Get all auction itemsGET /api/items/:id- Get specific item details
GET /api/bids/:itemId- Get item bid historyPOST /api/bids- Place a new bid (authenticated)
POST /api/ai/why-worth-it- AI item analysisPOST /api/ai/price-prediction- Price forecastingPOST /api/ai/bidding-strategy- Bidding recommendations
For complete API documentation, see API_DOCUMENTATION.md.
The platform uses WebSocket connections for real-time updates:
- Live bid updates
- Auction countdown timers
- Instant notifications
- Real-time price changes
artify/
├── client/ # React frontend application
│ ├── src/
│ │ ├── components/ # Reusable UI components
│ │ ├── pages/ # Page components
│ │ ├── context/ # React context providers
│ │ ├── services/ # API service functions
│ │ ├── hooks/ # Custom React hooks
│ │ └── utils/ # Utility functions
│ └── public/ # Static assets
├── server/ # Node.js backend application
│ ├── controllers/ # Route controllers
│ ├── models/ # Database models
│ ├── routes/ # API routes
│ ├── middlewares/ # Custom middleware
│ ├── services/ # Business logic services
│ ├── sockets/ # Socket.IO handlers
│ ├── migrations/ # Database migrations
│ └── seeders/ # Database seed files
└── README.md
The application uses PostgreSQL with the following main entities:
- Users: Authentication and user profiles
- Items: Auction items with details and pricing
- Bids: Bidding history and current prices
npm run dev- Start development server with nodemonnpm start- Start production servernpm run db:migrate- Run database migrationsnpm run db:seed- Seed database with sample datanpm run db:reset- Reset and reseed database
npm run dev- Start development servernpm run build- Build for productionnpm run preview- Preview production buildnpm run lint- Run ESLint
The project includes:
- ESLint configuration for code consistency
- React hooks and best practices enforcement
- Consistent error handling patterns
- Comprehensive API response formatting
- Set up production environment variables
- Build the frontend application
- Configure database for production
- Deploy backend with PM2 or Docker
- Serve frontend through nginx or CDN
For detailed deployment instructions, see DEPLOYMENT.md.
Ensure all required environment variables are set:
- Database connection details
- JWT secret for authentication
- Google Gemini API key for AI features
- CORS origins for frontend integration
- 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
- JWT-based authentication with secure token handling
- Input validation and sanitization
- CORS configuration for secure cross-origin requests
- Environment variable protection for sensitive data
- Rate limiting on API endpoints
- Efficient database queries with proper indexing
- Real-time updates without polling
- Optimized frontend builds with Vite
- Connection pooling for database operations
- Lazy loading for improved initial load times
This project is licensed under the ISC License.
For questions or support, please open an issue in the GitHub repository.
Built with ❤️ by Artify Team