🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
3.0 KiB
Quick Start Guide - Step Competition
Get Running in 2 Steps
1. Start the Server
cd /home/sascha/gitea/step-competition
npm start
The server will start on http://localhost:3060
2. Import Your 48 Participants
Prepare Your CSV File:
Create a CSV with 3 columns: team_name, participant_name, email
Example (see sample_import.csv for 48-person template):
team_name,participant_name,email
Team Alpha,Alice Johnson,alice@example.com
Team Alpha,Bob Smith,bob@example.com
Team Beta,Carol Williams,carol@example.com
Import Steps:
- Open http://localhost:3060
- On the "Log Your Steps" tab, scroll to "Admin: Bulk Import"
- Select your CSV file
- Click "Import CSV"
- Done! All teams and participants are ready
Using the App
3 Simple Tabs
1. Log Your Steps
- Select your team from dropdown
- Select your name from filtered list (only shows your team)
- See your personal stats and history on the right
- Enter date and steps, click Submit
2. Team Standings
- See team rankings (total steps, avg per person)
- See individual rankings (all 48 people)
- Gold/silver/bronze highlighting for top 3
3. Competition Stats
- Overall statistics cards
- Team progress chart (cumulative over time)
- Top 10 individuals bar chart
- Team comparison pie chart
Accessing via Tailscale
Find your Tailscale IP:
tailscale ip -4
Share this URL with all participants:
http://YOUR_TAILSCALE_IP:3060
For example: http://100.64.1.2:3060
Everyone can access it from their phone or computer!
Accessing via Local Network
Find your local IP:
hostname -I | awk '{print $1}'
Share this URL:
http://YOUR_LOCAL_IP:3060
For example: http://192.168.1.100:3060
Tips for Your 48-Person Competition
- Pre-Import Everyone: Use the CSV import before launch day
- Test First: Try the sample_import.csv to see how it works
- Mobile-Friendly: Participants can log from their phones
- Easy Name Finding: Team dropdown first, then name dropdown shows only that team's 6 people
- Personal History: Each person sees their entries immediately after selecting their name
- Daily Reminders: Send daily reminders to log steps
- Display Leaderboard: Show the "Team Standings" tab on a monitor or TV
Sample Data
Want to test with fake data first?
node sample-data.js
This creates 3 teams with 9 people and 7 days of step data.
Troubleshooting
CSV won't import:
- Make sure first line has:
team_name,participant_name,email - No spaces in the header row
- Save as CSV, not Excel format
Can't find my name:
- Did you select your team first?
- Names only show after team is selected
- Check spelling matches the import
Port 3060 in use:
- Edit
src/server.jsline 8 to change port - Or:
PORT=3070 npm start
Resetting Everything
rm step_competition.db
npm start
This deletes all data and creates a fresh database.
Need More Help?
See the full README.md for complete documentation, API endpoints, and advanced features.