xing5 / ente

Fully open source, End to End Encrypted alternative to Google Photos and Apple Photos
https://ente.io
GNU Affero General Public License v3.0
0 stars 0 forks source link

UX for family accounts setup #1

Open xing5 opened 6 months ago

xing5 commented 6 months ago

Family accounts & permissions flow

Auth is device & passkey based.

Admin registration flow

  1. when no admin is registered in the system, access the web app will go to an admin setup page
  2. the admin needs to provide name, email, ...

Family member registration flow

the admin can invite family members to download app and register an account, the steps are: ...

Add new device flow

each member can add more devices:

xing5 commented 6 months ago

Generated by ChatGPT:


Authentication is device- and passkey-based, ensuring secure access to the system.

## Admin Registration Flow

1. When no admin is registered in the system, accessing the web app redirects the user to an admin setup page.
2. The admin needs to provide:
   - Name
   - Email (used for notifications and account recovery)
   - A strong password (with requirements for complexity)
   - A mobile phone number (optional, for two-factor authentication)
3. After submitting the form, the admin is prompted to verify their email through a link sent to the provided email address.
4. Upon email verification, the admin is encouraged to set up two-factor authentication to add an extra layer of security to their account.
5. The admin is then taken to the dashboard where they can manage the family account, including inviting family members, managing devices, and setting permissions.

## Family Member Registration Flow

1. The admin can invite family members by entering their email addresses in the "Invite Family Member" section of the admin dashboard.
2. Each invited family member receives an email with a link to download the app and instructions to register.
3. Upon app installation, family members are prompted to create their account by providing:
   - Name
   - Email (pre-filled and non-editable, as it's the identifier used for the invitation)
   - A unique passkey for app access
4. After setting up their passkey, family members complete a brief onboarding process to familiarize them with the app's features.
5. Once registration is complete, family members can access the shared family dashboard, view devices, and, depending on their permissions, add new devices.

## Add New Device Flow

1. Within the app, members find and select the "Add New Device" option in the menu.
2. The member is prompted to enter the device name and select the type of device from a predefined list (e.g., smartphone, tablet, smart speaker).
3. The app guides the member through connecting the device to the system. This process involves:
   - Scanning a QR code provided by the device with the app or manually entering a device-specific code.
   - Following on-screen instructions to finalize the device's setup, which may include connecting it to the home network.
4. After successful connection, the device appears on the family dashboard. The member who added the device can set permissions for other family members (e.g., who can use this device, access restrictions).
5. The admin receives a notification about the new device and has the authority to modify any settings or permissions.

## Permissions and Settings

- **Admin Permissions**: Full control over all settings, devices, and member permissions.
- **Family Member Permissions**: By default, can view and use devices but cannot change system-wide settings. The admin can grant additional permissions on a per-member basis.
- **Device Permissions**: Admins and members (with granted permissions) can set device-specific access controls, usage times, and content restrictions.

## Security Considerations

- All communications within the app and between devices are encrypted.
- Regular security updates are provided to ensure the system is protected against the latest threats.
- Two-factor authentication is strongly recommended for all users.
xing5 commented 6 months ago

Thoughts: