A full-stack e-commerce platform for vintage and rare items, built with Vue.js 3 and Flask.
- System Requirements
- Quick Start
- Detailed Setup Instructions
- Project Structure
- Running the Application
- Troubleshooting
-
Python 3.10 or higher
- Download: https://www.python.org/downloads/
- During installation, CHECK "Add Python to PATH"
-
Node.js 16.x or higher
- Download: https://nodejs.org/ (LTS version recommended)
- Includes npm (Node Package Manager)
-
MySQL 8.0 or higher
- Download: https://dev.mysql.com/downloads/installer/
- OR use XAMPP: https://www.apachefriends.org/
- OR use WAMP: https://www.wampserver.com/
-
Git (optional, for version control)
- Download: https://git-scm.com/downloads
- Windows 10/11
- macOS 10.15+
- Linux (Ubuntu 20.04+)
# Navigate to project folder
cd rarevault
# Run the setup script
# On Windows PowerShell:
.\SETUP.ps1
# On Windows CMD or Git Bash:
bash SETUP.sh
# On macOS/Linux:
bash SETUP.shFollow the Detailed Setup Instructions below.
- Extract the
rarevaultfolder from Google Drive to your desired location - Example:
C:\Projects\rarevaultorD:\Development\rarevault
- Install MySQL Server from https://dev.mysql.com/downloads/installer/
- During installation:
- Remember your root password
- Note the port (default: 3306)
- Open MySQL Workbench or MySQL Command Line
- Run the following command:
CREATE DATABASE rarevault_db;
- Import the database schema:
OR in MySQL Workbench:
mysql -u root -p rarevault_db < rarevault_db.sql
- File → Run SQL Script
- Select
rarevault_db.sql - Execute
- Install XAMPP from https://www.apachefriends.org/
- Start the XAMPP Control Panel
- Start Apache and MySQL services
- Click Admin button next to MySQL (opens phpMyAdmin)
- Create a new database named
rarevault_db - Import
rarevault_db.sql:- Click on
rarevault_dbdatabase - Go to "Import" tab
- Choose file:
rarevault_db.sql - Click "Go"
- Click on
-
Open Terminal/Command Prompt and navigate to backend folder:
cd rarevault/backend -
Create Python Virtual Environment:
# On Windows: python -m venv venv # On macOS/Linux: python3 -m venv venv
-
Activate Virtual Environment:
# On Windows PowerShell: .\venv\Scripts\Activate.ps1 # On Windows CMD: venv\Scripts\activate.bat # On macOS/Linux: source venv/bin/activate
You should see
(venv)at the start of your command prompt. -
Install Python Dependencies:
pip install --upgrade pip pip install -r requirements.txt
-
Configure Environment Variables:
- Open the file
backend\.envin a text editor - Update the following values:
SECRET_KEY=your-secret-key-here-change-in-production DATABASE_URL=mysql+pymysql://root:YOUR_MYSQL_PASSWORD@localhost/rarevault_db JWT_SECRET_KEY=jwt-secret-string-change-in-production
Important: Replace
YOUR_MYSQL_PASSWORDwith your actual MySQL root passwordExample:
DATABASE_URL=mysql+pymysql://root:mypassword123@localhost/rarevault_db - Open the file
-
Test Database Connection:
python check_database.py
This should show all database tables and confirm the connection works.
-
Open a NEW Terminal/Command Prompt and navigate to frontend folder:
cd rarevault/frontend -
Install Node.js Dependencies:
npm install
This may take 2-5 minutes. You should see a
node_modulesfolder created. -
Verify Installation:
npm list vue
Should show Vue 3.4.0 or similar.
You need to run BOTH backend and frontend servers.
# Navigate to backend folder
cd rarevault/backend
# Activate virtual environment (if not already activated)
# Windows PowerShell:
.\venv\Scripts\Activate.ps1
# Run the Flask server
python run.pyExpected Output:
* Running on http://0.0.0.0:5000
* Running on http://127.0.0.1:5000
* Running on http://YOUR_LOCAL_IP:5000
Keep this terminal OPEN. The backend is now running on http://localhost:5000
# Navigate to frontend folder
cd rarevault/frontend
# Run the development server
npm run devExpected Output:
VITE v5.0.0 ready in 500 ms
➜ Local: http://localhost:3001/
➜ Network: http://192.168.x.x:3001/
Keep this terminal OPEN. The frontend is now running on http://localhost:3001
Open your web browser and go to:
http://localhost:3001
rarevault/
├── backend/ # Flask Backend API
│ ├── app/
│ │ ├── models/ # Database models
│ │ ├── routes/ # API endpoints
│ │ ├── admin/ # Admin routes
│ │ ├── seller/ # Seller routes
│ │ └── user/ # User routes
│ ├── uploads/ # Uploaded images
│ ├── venv/ # Python virtual environment (created during setup)
│ ├── .env # Environment variables (CONFIGURE THIS)
│ ├── requirements.txt # Python dependencies
│ └── run.py # Backend entry point
│
├── frontend/ # Vue.js Frontend
│ ├── src/
│ │ ├── views/ # Page components
│ │ ├── components/# Reusable components
│ │ ├── router/ # Vue Router config
│ │ └── assets/ # Static assets
│ ├── node_modules/ # Node dependencies (created during setup)
│ ├── package.json # Frontend dependencies
│ └── vite.config.js # Vite configuration
│
├── rarevault_db.sql # Database schema and seed data
├── README.md # This file
└── SETUP_GUIDE.md # Detailed setup instructions
Solution: Make sure the virtual environment is activated and dependencies are installed:
cd backend
.\venv\Scripts\Activate.ps1 # Windows
pip install -r requirements.txtSolution: Update your backend\.env file with the correct MySQL password:
DATABASE_URL=mysql+pymysql://root:YOUR_CORRECT_PASSWORD@localhost/rarevault_dbSolution:
- Make sure MySQL service is running
- On Windows: Open Services (services.msc) and start "MySQL80" service
- With XAMPP: Open XAMPP Control Panel and start MySQL
Solution:
- Close any application using port 5000
- OR change the port in
backend/run.py:app.run(debug=True, host='0.0.0.0', port=5001) # Changed to 5001
Solution:
- Install Node.js from https://nodejs.org/
- Restart your terminal after installation
- Verify:
node --versionandnpm --version
Solution: Make sure you're in the correct directory:
cd rarevault/frontend
npm installSolution: Delete node_modules and reinstall:
rm -rf node_modules
npm installSolution: Kill the process or change the port in frontend/vite.config.js:
server: {
port: 3002, // Changed to 3002
// ... rest of config
}Solution:
- Make sure the database exists:
CREATE DATABASE rarevault_db; - Use the correct command:
# From project root mysql -u root -p rarevault_db < rarevault_db.sql
- Or use MySQL Workbench GUI: File → Run SQL Script
Solution: Re-import the database:
mysql -u root -p
DROP DATABASE rarevault_db;
CREATE DATABASE rarevault_db;
exit
mysql -u root -p rarevault_db < rarevault_db.sqlAfter importing the database, you may have default test accounts. Check the SQL file or create new accounts through the registration page.
For issues or questions:
- Check the Troubleshooting section
- Review error messages carefully
- Check that all prerequisites are installed correctly
- Verify MySQL is running and credentials are correct
- User Management: Registration, login, profile management
- Seller Dashboard: List items, manage inventory, view analytics
- Admin Panel: User management, item moderation, system monitoring
- Marketplace: Browse items, search, filter, favorites
- Messaging System: Buyer-seller communication
- Order Management: Purchase flow, order tracking
- Image Uploads: Multiple images per item
- Notifications: Real-time updates for users and sellers
Proprietary - All rights reserved