A web-based platform for comparing freshwater aquarium fish species and managing your aquarium. Features 246 species with detailed care requirements, tank management, maintenance scheduling, and push notifications.
Current Status: Phase 3 In Progress (January 2026) - Content Expansion
Live Site: https://comparium.net
Prerequisites: Node.js installed (download from https://nodejs.org)
First time setup:
cd C:\Users\HarrisonKlein\Downloads\comparium-live
npm install -g http-serverStart the local server:
cd C:\Users\HarrisonKlein\Downloads\comparium-live
http-serverOpen in browser: http://localhost:8080
Stop the server: Press Ctrl+C in the terminal
Open Command Prompt or PowerShell, then run:
cd C:\Users\HarrisonKlein\Downloads\comparium-live
claudeClaude Code will start in the project directory, ready to help with development.
Check what files changed:
git statusStage all changes:
git add .Commit with a message:
git commit -m "Your description of what changed"Push to GitHub:
git pushPull latest updates (if Claude pushed changes):
git pullCommon workflow:
git add . && git commit -m "Add new feature" && git pushIf you get "uncommitted changes" error when pulling:
git stash
git pull
git stash pop- Current staging branch:
claude/phase2-notifications(Phase 2 complete, ready for merge) - Production branch:
main(merging to main deploys to live site)
To merge current work:
- Go to https://github.com/hklein13/comparium/pull/new/claude/phase2-notifications
- Create PR, review changes
- Merge to main
You'll need:
- A GitHub account (free - create at github.com)
- These website files
Step-by-Step Instructions:
-
Create a GitHub Account
- Go to https://github.com
- Click "Sign up" in the top right
- Follow the steps to create your free account
-
Create a New Repository
- Once logged in, click the "+" icon in the top right
- Select "New repository"
- Name it:
Comparium(or any name you like) - ✅ Check "Public"
- ✅ Check "Add a README file"
- Click "Create repository"
-
Upload Your Website Files
- In your new repository, click "Add file" → "Upload files"
- Drag and drop ALL files and folders from the
Comparium-websitefolder:- index.html
- about.html
- css/ folder (with styles.css inside)
- js/ folder (with fish-data.js and app.js inside)
- Scroll down and click "Commit changes"
-
Enable GitHub Pages
- In your repository, click "Settings" (top menu)
- Scroll down to "Pages" in the left sidebar
- Under "Source", select "Deploy from a branch"
- Under "Branch", select "main" and "/ (root)"
- Click "Save"
-
Get Your Website Link
- Wait 2-3 minutes for GitHub to build your site
- Refresh the Settings → Pages page
- You'll see: "Your site is published at https://yourusername.github.io/Comparium/"
- That's your website link! Share it with anyone!
Your free GitHub Pages site works great at yourusername.github.io/Comparium, but you can get a custom domain like Comparium.com for about $10-15/year.
Recommended Registrars:
- Namecheap (easiest for beginners) - https://www.namecheap.com
- Google Domains - https://domains.google
- Cloudflare (cheapest) - https://www.cloudflare.com/products/registrar/
What to do:
- Search for your desired domain (e.g., "Comparium.com")
- Add to cart and purchase (usually $10-15/year)
- Complete registration
In your domain registrar:
-
Find "DNS Settings" or "DNS Management"
-
Add these records:
For root domain (Comparium.com):
- Type: A Record
- Host: @
- Value: 185.199.108.153
- TTL: Automatic
Add 3 more A records with these IPs:
- 185.199.109.153
- 185.199.110.153
- 185.199.111.153
For www subdomain (www.Comparium.com):
- Type: CNAME
- Host: www
- Value: yourusername.github.io
- TTL: Automatic
-
Save changes
In GitHub:
- Go to your repository Settings → Pages
- Under "Custom domain", enter your domain (e.g., Comparium.com)
- Click "Save"
- ✅ Check "Enforce HTTPS" (wait a few minutes if it's not available yet)
Wait 24-48 hours for DNS propagation. Your site will then be available at your custom domain!
-
Create Google Analytics Account
- Go to https://analytics.google.com
- Sign in with your Google account
- Click "Start measuring"
- Fill in your website details
- Get your Measurement ID (looks like "G-XXXXXXXXXX")
-
Add to Your Website
- Open
index.htmlin a text editor (Notepad, TextEdit, or VS Code) - Find this section near the top (around line 26):
<!-- Google Analytics - Replace G-8VNY458QF3 with your actual ID -->- Remove the
<!--at the beginning and-->at the end - Replace
G-8VNY458QF3with your actual ID (twice) - Save the file
- Upload the updated file to GitHub
- Open
-
Repeat for about.html so analytics tracks both pages
Where: index.html and about.html
Find: your-email@example.com
Replace with: Your actual email address
Where: css/styles.css
Find: (around line 16)
background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);Change the color codes to your preferred colors:
- Use a color picker: https://htmlcolorcodes.com/color-picker/
- Save your logo image as
logo.png - Create an
imagesfolder in your website directory - Put
logo.pnginside theimagesfolder - Open
index.htmlandabout.html - Find
<h1>🐠 Comparium</h1> - Replace with:
<img src="images/logo.png" alt="Comparium Logo" style="height: 60px;">
- Upload all files to GitHub
- Create a 32x32 pixel icon and save as
favicon.ico - Upload it to the root folder of your website (same level as index.html)
- It will automatically appear in browser tabs!
comparium-live/
├── index.html # Landing page
├── compare.html # Fish comparison tool (main feature)
├── dashboard.html # User hub (tanks, maintenance, notifications)
├── glossary.html # Species database with search
├── faq.html # Frequently asked questions
├── species-detail.html # Individual species pages
│
├── css/
│ └── naturalist.css # All styling (naturalist theme)
│
├── js/
│ ├── fish-data.js # Database of 143 fish species
│ ├── firebase-init.js # Firebase setup + FCM helpers
│ ├── auth-manager.js # Authentication handling
│ ├── storage-service.js # Firestore data operations
│ ├── tank-manager.js # Tank CRUD operations
│ ├── maintenance-manager.js # Maintenance events & schedules
│ └── ... # Additional modules
│
├── functions/ # Firebase Cloud Functions
│ ├── index.js # 4 deployed functions
│ └── package.json # Function dependencies
│
├── scripts/ # Development & migration scripts
│ └── ...
│
├── tests/ # Playwright E2E tests
│ └── ...
│
├── firebase-messaging-sw.js # Push notification service worker
├── firestore.rules # Firestore security rules
├── firestore.indexes.json # Firestore indexes
│
├── CLAUDE.md # AI assistant instructions
├── DATA-MODEL.md # Database structure & roadmap
├── TESTING.md # Testing guide
└── README.md # This file
Want to add more fish to the database?
Open: js/fish-data.js
Add a new fish following this template:
newFishKey: {
commonName: "Common Name",
scientificName: "Genus species",
tempMin: 72,
tempMax: 82,
tempUnit: "°F",
phMin: 6.5,
phMax: 7.5,
tankSizeMin: 20,
tankSizeUnit: "gallons",
maxSize: 3.0,
sizeUnit: "inches",
aggression: "Peaceful",
diet: "Omnivore",
schooling: "School of 6+",
waterHardness: "5-15 dGH",
lifespan: "5 years",
careLevel: "Easy"
},Then open: js/app.js
Find the fishCategories object and add your fish key to the appropriate category array.
- Wait 5-10 minutes for GitHub to build your site
- Make sure you uploaded ALL files and folders
- Check that index.html is in the root directory (not in a subfolder)
- Make sure all three JS files are uploaded correctly
- Check browser console for errors (F12 → Console tab)
- DNS changes can take up to 48 hours
- Double-check your A and CNAME records
- Make sure you entered the domain correctly in GitHub Settings
- Make sure fish-data.js uploaded correctly
- Try clearing your browser cache (Ctrl+F5)
Implemented:
- ✅ 246 fish species (213 with images from Wikimedia Commons)
- ✅ Individual species profile pages
- ✅ User accounts with Firebase Auth
- ✅ Tank management with species tracking
- ✅ Maintenance scheduling and event logging
- ✅ Push notifications for maintenance reminders
- ✅ Favorites system
Coming Soon (Phase 3+):
- Expanded glossary (equipment, plants, diseases)
- Social features (follows, posts)
- Fish health diagnostic tool
- Native mobile app (iOS + Android)
Questions? Issues? Suggestions?
Contact: your-email@example.com
Data Sources:
- SeriouslyFish.com
- Aquarium Co-Op
- FishLore
- Aqueon
- FishBase
- PlanetCatfish
Built for aquarists, by aquarists.
This project is free to use and modify for personal or educational purposes. If you use this code, please credit Comparium and the original data sources.
Important: Fish care data is educational only. Always research thoroughly before adding fish to your aquarium.
Before going live, make sure you've:
- Uploaded all files to GitHub
- Enabled GitHub Pages in repository settings
- Tested the website link
- Updated email addresses in index.html and about.html
- Added Google Analytics (optional)
- Set up custom domain (optional)
- Added favicon.ico (optional)
- Shared your website with fellow aquarists!
Congratulations! Your website is live! 🎉