This is a full-stack online auction system built using the MERN (MongoDB, Express.js, React, Node.js) stack. It allows users to place bids on items, manage auctions, and handle authentication securely.
- Features
- Technologies Used
- Installation and Setup
- Project Structure
- Usage
- Future Improvements
- Contributing
- License
- User authentication and authorization
- Real-time bidding with live updates
- Countdown timer for auctions
- Product categories and search functionality
- Image uploads via Cloudinary
- React 18 - JavaScript library for building UI
- Ant Design (
antd
) - UI component library - React Router DOM - Routing library for navigation
- Redux Toolkit - State management
- Axios - HTTP requests to backend
- JWT Decode - Decoding JWT tokens for authentication
- Express.js - Web framework for handling API requests
- MongoDB + Mongoose - Database for storing user and auction data
- jsonwebtoken (JWT) - Token-based authentication
- bcrypt - Password hashing for security
- Cloudinary + Multer - Image storage and file upload handling
- CORS & dotenv - Security and environment management
Make sure you have the following installed:
- Node.js (Latest LTS version)
- MongoDB (Locally or via a cloud service like MongoDB Atlas)
git clone https://github.com/theavnishkumar/online-auction-system.git
cd online-auction-system
cd server
npm install
- Create a
.env
file in theserver
directory and add the following:
PORT=4000
MONGO_URI=your_mongodb_connection_string
JWT_SECRET=your_secret_key
CLOUDINARY_CLOUD_NAME=your_cloudinary_name
CLOUDINARY_API_KEY=your_cloudinary_api_key
CLOUDINARY_API_SECRET=your_cloudinary_api_secret
- Start the backend server:
npm start
Cloudinary is used for storing images. Follow these steps to configure it:
- Sign up at Cloudinary.
- Navigate to the Dashboard and copy your Cloud Name, API Key, and API Secret.
- Add these credentials to the
.env
file in theserver
directory:CLOUDINARY_CLOUD_NAME=your_cloudinary_name CLOUDINARY_API_KEY=your_cloudinary_api_key CLOUDINARY_API_SECRET=your_cloudinary_api_secret
- Install Cloudinary dependencies in the server:
npm install cloudinary multer multer-storage-cloudinary
- Use Cloudinary in your Node.js application to handle image uploads.
cd ../client
npm install
- Create a
.env
file in theclient
directory and add:
REACT_APP_API_URL=http://localhost:4000
- Start the frontend application:
npm start
/online-auction-system
├── client/ # React Frontend
├── server/ # Node.js Backend
├── .env # Environment variables
├── package.json # Dependencies
- Register/Login to the platform.
- Create auctions and upload images via Cloudinary.
- Place bids on available auctions.
- View auction history and user profiles.
- Monitor countdown timers for auction expirations.
- Enhance real-time bidding with WebSockets.
- Implement payment gateway for transactions.
- Improve UI/UX for a better user experience.
Contributions are welcome! Feel free to submit a pull request with improvements or bug fixes.
This project is licensed under the MIT License - see the LICENSE file for details.