[Vineyard & Winery Elf EN](https://help.vineyardelf.com/index.md) / [VineyardElf](https://help.vineyardelf.com/vineyardelf.md)

# [Beta Onboarding - Plan for introducing new users](https://help.vineyardelf.com/beta-onboarding-plan-for-introducing-new-users.md)

# Beta Onboarding - Plan

> Status: In preparation
> Goal: Enable beta testers (winegrowers) to sign up

## Current state

- ✅ Dashboard works
- ✅ Weather from OpenMeteo works
- ✅ Disease models work
- ⬜ **Missing**: a mechanism for creating accounts for new users

## Must Have (before letting beta testers in)

### 1. Account creation

Options:
- **A) Rake task** - a script for creating an account manually
- **B) Manual** - via the Rails console (temporarily)

Required data:
- User email
- Vineyard name
- GPS location (lat/lng)

### 2. Location configuration

Options:
- **A) Setup screen** - a form shown on first login
- **B) Manual** - the admin sets it in the database

Fields:
- Latitude (-90 to 90)
- Longitude (-180 to 180)
- Optional: map with a pin

## Should Have (greatly improves UX)

### 3. Cron job - automatic forecast refresh

- Fetches the forecast for all accounts every 6 hours
- Rate limiting for OpenMeteo
- Per-account error handling

### 4. Email alerts

Triggers:
- Temperature ≤2°C (frost risk)
- Powdery mildew risk >70%
- Spraying window

Notes:
- Cooldown: max 1 alert per 24h
- Do not send at night (unless URGENT)
- Unsubscribe link

## Nice to Have (can wait)

- Beta sign-up landing page
- Self-registration
- Onboarding wizard

## Minimal scenario

If no ready-made mechanisms are available:

1. The admin creates accounts manually via the Rails console
2. Sends an email with a temporary password
3. Sets the GPS coordinates in the database manually

That is enough to test with 3-5 people.

## Open questions

- How do we create Account + User + UserSetting? (is there a service?)
- How do we "install" the weather/station app for an account?
- Magic link for login - is there a ready-made mechanism?
- Cache for OpenMeteo - does it exist?

## Next steps

1. Clarify the technical questions
2. Decide on the scenario (full vs minimal)
3. Implement the minimum
4. Test on 1 account
5. Let in the first beta tester
