Files
step-competition/QUICKSTART.md
2025-10-20 15:38:42 +02:00

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:

  1. Open http://localhost:3060
  2. On the "Log Your Steps" tab, scroll to "Admin: Bulk Import"
  3. Select your CSV file
  4. Click "Import CSV"
  5. 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

  1. Pre-Import Everyone: Use the CSV import before launch day
  2. Test First: Try the sample_import.csv to see how it works
  3. Mobile-Friendly: Participants can log from their phones
  4. Easy Name Finding: Team dropdown first, then name dropdown shows only that team's 6 people
  5. Personal History: Each person sees their entries immediately after selecting their name
  6. Daily Reminders: Send daily reminders to log steps
  7. 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.js line 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.