-
Notifications
You must be signed in to change notification settings - Fork 0
Installation Guide
This guide will walk you through setting up SideQuest on your local machine for development or testing.
Before you begin, ensure you have the following installed:
- Modern Web Browser: Chrome, Firefox, Safari, or Edge (not Internet Explorer)
- Text Editor: VS Code, Sublime Text, or any code editor
- Local Web Server: Python, Node.js, or any HTTP server
- Firebase Account: Free tier is sufficient
- Firebase Project: Create one at Firebase Console
# Clone via HTTPS
git clone https://github.com/Kaelith69/SideQuest.git
# Or via SSH
git clone git@github.com:Kaelith69/SideQuest.git
# Navigate to project directory
cd SideQuestHacker voice: "I'm in." 🕶️
- Go to Firebase Console
- Click "Add project"
- Enter a project name (e.g., "sidequest-dev")
- Follow the setup wizard (you can disable Google Analytics for development)
- In Firebase Console, go to Authentication → Sign-in method
- Enable Email/Password authentication
- Save changes
- Go to Firestore Database in Firebase Console
- Click "Create database"
- Choose "Start in test mode" for development
- Select a location close to your users
- Click "Enable"
- Go to Project Settings (gear icon)
- Scroll to "Your apps" section
- Click "Add app" → Web (</> icon)
- Register your app (give it a nickname)
- Copy the Firebase configuration object
Create a new file at js/firebase-config.js:
touch js/firebase-config.jsOpen js/firebase-config.js and paste the following, replacing with your actual Firebase credentials:
// js/firebase-config.js
import { initializeApp } from "https://www.gstatic.com/firebasejs/10.7.1/firebase-app.js";
import { getAuth } from "https://www.gstatic.com/firebasejs/10.7.1/firebase-auth.js";
import { getFirestore } from "https://www.gstatic.com/firebasejs/10.7.1/firebase-firestore.js";
const firebaseConfig = {
apiKey: "YOUR_API_KEY",
authDomain: "your-project-id.firebaseapp.com",
projectId: "your-project-id",
storageBucket: "your-project-id.appspot.com",
messagingSenderId: "123456789012",
appId: "1:123456789012:web:abcdef123456"
};
const app = initializeApp(firebaseConfig);
export const auth = getAuth(app);
export const db = getFirestore(app);- Never commit
firebase-config.jsto a public repository - Add it to
.gitignoreif you're sharing your code - Use environment variables for production deployments
Replace the content of firestore.rules with appropriate security rules (see Security Guide for production rules):
rules_version = '2';
service cloud.firestore {
match /databases/{database}/documents {
// Development rules - Update before production!
match /{document=**} {
allow read, write: if request.time < timestamp.date(2026, 12, 31);
}
}
}
Deploy the rules:
firebase deploy --only firestore:rulesYou cannot simply open index.html directly due to CORS restrictions. You need to run a local web server.
If you have Python installed:
# Python 3.x
python -m http.server 8000
# Python 2.x (if you're living in the past)
python -m SimpleHTTPServer 8000Then open: http://localhost:8000
If you have Node.js and npm installed:
# Install http-server globally (one-time)
npm install -g http-server
# Run the server
http-server . -p 8000Then open: http://localhost:8000
For development with automatic reloading:
# Install live-server globally (one-time)
npm install -g live-server
# Run with auto-reload
live-server --port=8000- Install the "Live Server" extension in VS Code
- Right-click on
index.html - Select "Open with Live Server"
If you have PHP installed:
php -S localhost:8000- Open
http://localhost:8000in your browser - You should see the SideQuest loading screen
- The authentication page should appear
- Try creating a test account
- Click "New to SideQuest? Sign Up"
- Enter:
- Name: Test User
- Email: test@example.com
- Password: password123
- Click "Create Account"
- You should be redirected to the map view
When prompted, allow location access:
- This enables the map to center on your location
- You can still use the app without location access
Solution: Make sure firebase-config.js exists and has valid credentials.
Solution: You must use a local web server, not open index.html directly.
Solution:
- Check that Email/Password auth is enabled in Firebase Console
- Verify your Firebase configuration is correct
- Check browser console for specific error messages
Solution:
- Allow location permissions when prompted
- Check internet connection (MapLibre loads from CDN)
- Check browser console for errors
Solution:
- Verify Firestore is created and rules are deployed
- Check that the rules allow read/write access
- Make sure you're authenticated
Check that all components are working:
# Check if Firebase is configured
# Open browser console and type:
firebase.auth().currentUserSideQuest/
├── index.html
├── firestore.rules
├── js/
│ ├── firebase-config.js # ← You created this
│ ├── app.js
│ ├── auth.js
│ ├── map.js
│ ├── tasks.js
│ └── ui.js
├── styles/
│ ├── main.css
│ └── tailwind.css
├── wiki/ # Documentation
├── README.md
└── LICENSE
Congratulations! You've successfully installed SideQuest.
Now you can:
- Read the User Guide to learn how to use the app
- Check the Development Guide to start contributing
- Explore the Technical Architecture to understand how it works
- Check Troubleshooting Guide
- Read the FAQ
- Open an issue on GitHub