Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Create profile picture implementation #254

Open
h1divp opened this issue Sep 6, 2024 · 1 comment
Open

Create profile picture implementation #254

h1divp opened this issue Sep 6, 2024 · 1 comment
Assignees
Labels
Feature New feature or request Planning Request for planning help

Comments

@h1divp
Copy link
Collaborator

h1divp commented Sep 6, 2024

This is a large feature, so I am laying out a basic implementation of it here, where project decisions and smaller issues could reference this issue later.

One big point of our MVP is to have profile picture selection. To keep the somewhat anonymized nature of our app, this means we would like users to select from a bank of a number of pictures. As specified in our types page we would also like to have a foreground and background image, so that there can be a good amount of profile picture combinations.

Foreground image: a drawing of a face
Background image: a nice gradient (could be generated instead of being an image, but do whatever is easier)

A potential implementation would need...

  1. Media storage: Decide where media files should be stored (clientside, from the server, or from some media storage service).
    • This has been decided to be on the client side, so profile images will be bundled with the app
  2. A default icon: Generate a foreground + background image combination to set the profile picture.
  3. Settings page: Create a settings menu for changing the icon. While your at it, a setting for changing the display name could be created as well.
  4. Attribution: Attribute the icon images to a user. (Perhaps storing this under the user's authentication account, or rather the linked UserConfig might be a better idea than ConnectedUser as is currently written in the docs, because that would make the setting temporary).
  5. Rendering: Make sure that when a message is received, the front-end render will take the uid (user id) of the ConnectedUser which sent it, retrieve the information that stores the icon URLs to this user, get these URLs and retrieve the icon images from the media storage, and display the icon images.

Oh, and it would also be pretty cool if someone created some graphics

Start with figuring out point number 1, and assign issues to get the rest done.

@h1divp h1divp added the Planning Request for planning help label Sep 6, 2024
@h1divp h1divp changed the title Plan profile picture selection Create profile picture implementation Sep 6, 2024
@h1divp h1divp added the Feature New feature or request label Sep 8, 2024
@AlexanderWangY AlexanderWangY self-assigned this Sep 8, 2024
@h1divp h1divp self-assigned this Sep 13, 2024
@h1divp
Copy link
Collaborator Author

h1divp commented Sep 13, 2024

Recommendations for future issues to be made:

  • Have current-client user profile picture/display name be rendered in the chat screen
  • Update server UserConfig document from client set profile picture/display name
  • Retrieve non-client profile picture/display name info when a message is received and render in chat screen
  • Set random display name after account creation this is already an issue

Once #271 is merged these issues can be created. Once those are finished, this issue can be marked as done.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Feature New feature or request Planning Request for planning help
Projects
None yet
Development

No branches or pull requests

2 participants