This commit is contained in:
Jason
2026-04-11 00:04:09 -05:00
commit 7a2fffd62e
110 changed files with 51809 additions and 0 deletions
+294
View File
@@ -0,0 +1,294 @@
# Troubleshooting Guide - 404 Errors & Installation Issues
## 🔴 Issue 1: pip install requirements.txt fails
### Error Message:
```
error: subprocess-exited-with-error
× Getting requirements to build wheel did not run successfully.
```
### Solution:
This error usually happens with **Pillow** on Windows systems that don't have build tools installed.
#### Option 1: Install Pre-built Pillow (Recommended)
```bash
# Upgrade pip first
python -m pip install --upgrade pip
# Install Pillow from pre-built wheels
pip install --upgrade Pillow
# Then install other requirements
pip install Flask>=3.0.0
pip install Werkzeug>=3.0.0
```
#### Option 2: Install from updated requirements.txt
The requirements.txt has been updated to use version ranges instead of exact versions:
```bash
pip install -r requirements.txt
```
#### Option 3: Skip Pillow (if you don't need image generation)
If you don't need the dynamic image generation feature, you can install without Pillow:
```bash
pip install Flask>=3.0.0
pip install Werkzeug>=3.0.0
```
The app will still work - it will just disable the image generation features.
---
## 🔴 Issue 2: Login Page Returns 404 Error
### Common Causes & Solutions:
### Cause 1: Flask Server Not Running
**Check if the server is running:**
```bash
# Navigate to app folder
cd "C:\Users\Work\Desktop\CGW Product Finder\app"
# Run the Flask app
python app.py
```
You should see:
```
✓ Image generation available
* Running on http://127.0.0.1:8080
```
**Then access:** http://localhost:8080/login
---
### Cause 2: Wrong URL or Port
**Common mistakes:**
`http://localhost/login` - Missing port number
`http://localhost:8080/login` - Correct
`http://localhost:5000/login` - Wrong port
`http://localhost:8080/login` - Correct (app uses port 8080)
`/login` in browser address bar
`http://localhost:8080/login` - Need full URL
---
### Cause 3: Flask App Import Error
**Test if routes are registered:**
```bash
cd app
python test_routes.py
```
This will show:
- If Flask imports successfully
- All registered routes including /login
- What went wrong if there's an error
**Expected output:**
```
✓ Flask app imported successfully
📝 Login & Authentication Routes:
/login [GET] -> login_page
/api/login [POST] -> login
/api/logout [POST] -> logout
```
---
### Cause 4: Web Server Configuration (Apache/Passenger/IIS)
If you're running through a web server instead of `python app.py`:
**Check your server configuration:**
For **Apache + Passenger:**
- Verify passenger_wsgi.py is being used
- Check if Python path is correct in config
- Ensure the app folder is set as DocumentRoot
For **IIS:**
- Verify web.config is correct
- Check if Python handler is configured
- Ensure proper app folder path
**Test directly first:**
Always test with `python app.py` first to verify the app works before troubleshooting web server issues.
---
## 📋 Step-by-Step Troubleshooting
### Step 1: Verify Installation
```bash
# Check Python version (need 3.7+)
python --version
# Check if Flask is installed
python -c "import flask; print(flask.__version__)"
# Check if Werkzeug is installed
python -c "import werkzeug; print(werkzeug.__version__)"
```
### Step 2: Fresh Install
```bash
cd "C:\Users\Work\Desktop\CGW Product Finder\app"
# Upgrade pip
python -m pip install --upgrade pip
# Install requirements
pip install -r requirements.txt
# Or manual install
pip install Flask>=3.0.0 Werkzeug>=3.0.0 Pillow>=10.0.0
```
### Step 3: Test Routes
```bash
cd app
python test_routes.py
```
Expected: List of routes including /login
### Step 4: Start Server
```bash
python app.py
```
Expected output:
```
✓ Image generation available
* Running on http://127.0.0.1:8080
* Running on http://192.168.x.x:8080
```
### Step 5: Access in Browser
Open browser: http://localhost:8080/login
Expected: Login page with username/password fields
---
## 🐛 Common Errors & Fixes
### Error: "ModuleNotFoundError: No module named 'flask'"
```bash
pip install Flask>=3.0.0
```
### Error: "ModuleNotFoundError: No module named 'werkzeug'"
```bash
pip install Werkzeug>=3.0.0
```
### Error: "Address already in use" / "Port 8080 is already in use"
```bash
# Find what's using port 8080
netstat -ano | findstr :8080
# Kill the process (replace PID with actual process ID)
taskkill /PID <PID> /F
# Or edit app.py to use different port (line 911):
app.run(debug=True, host='0.0.0.0', port=8090)
```
### Error: "Template Not Found: login.html"
```bash
# Verify template exists
dir templates\login.html
# If missing, the file needs to be uploaded to the server
```
### Error: "Working outside of application context"
This means Flask app isn't initialized properly. Run `python test_routes.py` to diagnose.
---
## ✅ Verification Checklist
After fixing issues, verify:
- [ ] Flask server starts without errors: `python app.py`
- [ ] http://localhost:8080/ redirects to http://localhost:8080/login ✓
- [ ] http://localhost:8080/login shows login page ✓
- [ ] Can login with username: `Master` password: `Master`
- [ ] After login, see location selection page ✓
- [ ] Can access user management (Master user only) ✓
- [ ] Logout works and returns to login page ✓
---
## 🚀 Production Deployment
For production servers (not localhost):
1. **Use proper WSGI server** (not `python app.py`)
- Passenger (Apache/Nginx)
- uWSGI
- Gunicorn (Linux)
2. **Set secure SECRET_KEY** in config.py
```python
# Don't use secrets.token_hex() in production
SECRET_KEY = os.environ.get('SECRET_KEY') or 'your-secure-random-key-here'
```
3. **Enable HTTPS** and update config:
```python
SESSION_COOKIE_SECURE = True # Only send cookies over HTTPS
```
4. **Set Debug=False** for production
---
## 📞 Still Having Issues?
1. Run the test script:
```bash
python test_routes.py
```
2. Check Flask server output for errors:
```bash
python app.py
```
Look for red error messages
3. Test with curl:
```bash
curl http://localhost:8080/login
```
Should return HTML, not 404
4. Check browser console for JavaScript errors (F12)
5. Verify file permissions (server can read templates/)
---
## 📁 Files Needed for Login System
Ensure these files exist and are uploaded:
- ✅ app/app.py
- ✅ app/templates/login.html
- ✅ app/templates/user_manager.html
- ✅ app/templates/access_denied.html
- ✅ app/templates/select_location.html
- ✅ app/templates/index2.html
- ✅ app/css/styles.css
- ✅ app/data/users.json
Missing any of these will cause 404 or errors.