This project is an eBay-like e-commerce auction site aimed at addressing the absence of auction websites in Ukraine. The platform enables users to register, create auction listings with photos, place bids, comment on listings, and manage a watchlist of items they are interested in.
The live version of this application is accessible at: https://webauction.store/
- User Authentication: Sign up, log in, and log out functionality.
- Auction Listings: Create new auction listings with title, description, starting bid, and optional images and categories.
- Bidding System: Place bids on active listings.
- Watchlist: Add listings to a personal watchlist.
- Categories: Browse listings by category.
- Auction Management: Close auctions and determine winners.
The application follows a client-server architecture:
- Frontend: React-based single-page application
- Backend: Python Flask RESTful API
- Database: MongoDB
- React v18
- React Router for navigation
- Axios for API requests
- CSS for styling
- Python 3.12
- Flask web framework
- Flask-PyMongo for MongoDB integration
- Flask-Login for user session management
- MongoDB
- Docker for containerization
- Docker Compose for multi-container Docker applications
- AWS (EC2, ECR) DigitalOcean (Spaces) for hosting
To run this application locally, follow these steps:
-
Clone the repository:
git clone https://github.com/YaroslavKSE/AuctionWeb.git
-
Set up environment variables:
- Create a
.env
file in theflask_backend
directory for backend environment variables. - Create a
.env
file in thereact-frontend
directory for frontend environment variables.
- Create a
-
Build and run the Docker containers:
docker-compose up --build
-
Access the application:
- Frontend: http://localhost:3000
- Backend API: http://localhost:5000
flask_backend/
: Contains the Flask backend applicationreact-frontend/
: Contains the React frontend applicationdocker-compose.yml
: Defines and runs multi-container Docker applicationsDockerfile-backend
: Dockerfile for the Flask backendDockerfile-frontend
: Dockerfile for the React frontend
This project is licensed under the MIT License - see the LICENSE.md
file for details.