Users ===== Introduction ------------ This document outlines the functionality of User Profiles and Privacy in the project, including the models, views, and features related to user registration, profile management, and privacy settings. User Profiles ------------- User profiles are an integral part of the application, allowing users to create and manage their personal information and preferences. Profile Fields ~~~~~~~~~~~~~~~ - **Full Name**: The user's full name. - **Email Address**: The user's email, used as a login identifier. .. note:: When updating the email address via the API endpoint (api/users/ PATCH), a request for email change is generated. Additionally, an email containing a link to the email activation page is sent to the user's new email address to verify and complete the change. - **Password**: User password, meeting specified security requirements. - **Username**: Users can choose to use pseudonyms for privacy. - **Avatar**: Users can upload a profile photo or choose an avatar. - **Date of Birth**: User's date of birth, can be minimum 2011 year and maximum 1900 year Profile Photo and Avatar ~~~~~~~~~~~~~~~~~~~~~~~~~ - Users can upload a profile photo or choose an avatar. - The uploaded photo can be changed or deleted by the user. Personal Information ~~~~~~~~~~~~~~~~~~~~ - Users provide minimal personal information during sign-up. - Mobile phone number is used for registration. - Users can easily download their data and delete their accounts. Activation Codes ---------------- Activation codes are utilized to maintain security and user verification during password or email changes. Activation Code Types ~~~~~~~~~~~~~~~~~~~~~~ - **Password**: For password change/reset. - **Email**: For email change. Views and Endpoints ------------------- The project includes various views and endpoints to manage user profiles, privacy settings, and authentication. Interests List ~~~~~~~~~~~~~~ - Displays a list of interests available for users. - Endpoint: `/api/interests/` Unauthorized Users Views ~~~~~~~~~~~~~~~~~~~~~~~~ Sign Up ~~~~~~~ - Endpoint: `/api/signup/` - Allows users to sign up with provided details, profile, and interests. Account Activation ~~~~~~~~~~~~~~~~~~ - Endpoint: `/api/activate/{uid}/{token}/` - Activates a user's account using UID and token. Password Reset ~~~~~~~~~~~~~~ - Endpoint: `/api/reset-password/` - Allows users to request a password reset link via email. Password Confirmation ~~~~~~~~~~~~~~~~~~~~~ - Endpoint: `/api/confirm-password/` - Confirms a password change request. Email Confirmation ~~~~~~~~~~~~~~~~~~ - Endpoint: `/api/confirm_email/{uid}/{token}/` - Confirms an email change request. Authorized Users Views ~~~~~~~~~~~~~~~~~~~~~~ User Profile Management ~~~~~~~~~~~~~~~~~~~~~~~ - Endpoint: `/api/users/{user_id}/` - Allows authorized users to manage their profiles. Password Change ~~~~~~~~~~~~~~~ - Endpoint: `/api/password_change/` - Allows users to change their password. Conclusion ----------- The User Profiles and Privacy functionality provides users with a comprehensive profile management experience while ensuring data security and privacy. The available views and endpoints empower users to control their accounts effectively. .. toctree:: :maxdepth: 2 apps api services tasks tests