Skip to content

feat(user): Add user settings and profile related pages#19

Merged
marwan2232004 merged 20 commits intodevelopfrom
feature/user-profile
Oct 27, 2024
Merged

feat(user): Add user settings and profile related pages#19
marwan2232004 merged 20 commits intodevelopfrom
feature/user-profile

Conversation

@Mo2Hefny
Copy link
Copy Markdown
Collaborator

Pages

  • Settings
  • User Profile
  • Profile Info
  • Change Number Screen
  • Blocked Users
  • Block User Screen
  • Privacy and Security

Tests

  • Added unittest for settings section widget which is the main component of all pages.

Note

Other unittests will be implemented in another branch.

@Mo2Hefny Mo2Hefny added the enhancement New feature or request label Oct 26, 2024
Copy link
Copy Markdown
Member

@Bishoywadea Bishoywadea left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

sho8l tarshh

@marwan2232004 marwan2232004 merged commit 21b391f into develop Oct 27, 2024
Ahmed-Aladdiin added a commit that referenced this pull request Nov 1, 2024
* Setup (#1)

* docs: Update README to reference the `PROJECT_FLOW.md`

* refactor: remove boilerplate code

* refactor: use TalWare app name

* feat: add starter packages

* docs(gitignore): ignore auto generated flutter plugins files

* refactor: build the basic project structure

---------

Co-authored-by: Mo2Hefny <moamensaied1@gmail.com>

* FEATURE(AUTH-CROSS): Implement the sign up screen with its components (#2)

* refactor(widget_test): correct app name

* feat(ui): add Palette class for managing colors

* style(ui): modified Palette class

* feat(auth): add signup route

* feat(auth): add signup-ui

* style(auth): add authTheme

* refactor(auth): add auth widgets

* refactor(auth): add dimensions and sizes classes

* refactor(auth): change app name to telware

* refactor(auth): add circle_button widget

* style(auth): switch to dimensions and sizes classes

* feat(auth): secure the password field

* feat(auth): adding validations

* chore(auth): adding shake and vibration packages

* refactor(auth): correcting title name

* refactor(auth): removing redundant import

* refactor(auth): rename the theme

* refactor(auth): convert to StatefulWidget and add TextButton

* refactor(auth): convert to appTheme

* refactor(auth): add extra dimension

* refactor(auth): remove redundant condition

* refactor(auth): remove redundant code and convert to StatefulWidget

* FEAT(AUTH-CROSS): Initiate the basic structure of the model and view-model (#3)

* fix: correct app name to telware

* feat(login-flow): create an enum for the different states of authentication

* feat(auth): create a token provider

* feat: initialize custom_lints

* feat(auth): create the local repository for authentication

* feat(auth): create the authentication view model

* feat(auth): initialize the authentication process in the TelWare widget

* doc(auth): add a todo to create the user provider

* feat(auth): open Hive box for auth tokens

* feat(auth): create the splash screen

---------

Co-authored-by: Marwan Alhameedy <118024824+marwan2232004@users.noreply.github.com>

* refactor(auth): simplify the sign-up screen code (#4)

* FEAT(AUTH-CROSS): Build the UI for the Log In screen (#5)

* refactor(auth): simplify the sign-up screen code

* chor(auth-cross): add the social media login icons

* feat: add new routes

* feat(auth-cross): build login screen ui

* refactor(auth-cross): move the social login widget to a separate file

* feat(auth-cross): add forget password button to login screen

* feat(auth-cross): make a widget for the auth floating action button

---------

Co-authored-by: Marwan Alhameedy <118024824+marwan2232004@users.noreply.github.com>

* FEATURE(AUTH-CROSS): Implement sign up logic (#7)

* feat(auth): add userModel

* feat(auth): create user provider

* refactor(auth): remove redundant import

* feat(auth): create app error class

* feat(auth): add user model to local repository

* feat(auth): create remote repository

* feat(auth): add signUp logic to auth-view-model

* fix(auth): add null check

* feat(auth): create dio base options

* feat(auth): update signUp logic and convert to ConsumerStatefulWidget

* refactor(auth): remove dummy files

* refactor(auth): remove todo comments

* feat(auth): open user model hive box

* fix(auth): correct the image path

* fix(auth): register the user model to hive

* fix(auth): remove password field

* fix(auth): syntax error

* FEAT(AUTH-CROSS): Verification-UI (#8)

* feat(auth): add action to on press function

* refactor(auth): make the code more modular

* chore(auth): add package for code verification

* refactor(auth): modify names and input parameters for better usage.

* feat(auth): add verification length

* feat(auth): add verification screen ui

* feat(auth): add confirmation dialog

* refactor(auth): remove redundant code

* refactor(auth): remove verification from login logic

* chore(auth): add phone_form_field package

* style(auth): enhancing the parameters for better usage

* feat(auth): add phone field widget

* refactor(auth): modify the input values

* refactor(auth): improve ui styles

* FEATURE(AUTH):  Implement log in logic (#9)

* feat(auth-cross): use the initial route property

* fix(auth): remove unnecessary import

* ref: add todo's to marwan

* feat(auth): implement the log in functionality

* feat(auth): implement log in and forgot password logic

* feat(auth): update auth state to a class

* feat(auth): add show toast and snack bar utils

* feat(auth): add delete token or user functionalities to the authentication local repository

* fix(auth): fix used status code in the log in logic

* feat(auth): add the success state to the AuthStateType

* feat(auth): connect the ui with the logic for the log in feature

* feat(auth): add the log out functionality

* fix(auth): handle different states for the forgot password method

* fix(auth): recompile generated files

---------

Co-authored-by: marwan2232004 <118024824+marwan2232004@users.noreply.github.com>

* feat(auth): add testing keys to the log in (#10)

specify the type of the keys

* feat(auth): handle log in without being verified scenario (#11)

* FEAT: Change the app icon and Splash screen icon (#12)

* feat: create app icon

* feat: update the splash screen with the logo and app name

* fix: correctly check success status codes

* feat: update user model to match api documentation

* fix: user correct key names in initialization

* feat: change get user method name to get me

* FIX: correctly validate passowrds and send email to verificatoin screen

feat(auth): add password validator

feat: add password validator and send the email to the verification screen

* FEAT(AUTH): Implement log out methods (#13)

* feat(home): Create the app drawer (#14)

* feat: initial app drawer

* feat: create the app drawer

* FEATURE(AUTH): Signup logic (#15)

* chore(auth): add .env file

* refactor(auth): add authenticated state

* feat(auth): add captcha

* feat(auth): add captcha and signup logic

* feat(auth): add verification logic

* refactor(auth): modify captcha logic

* feat: update password validator

* fix: change error message for resend confirmation

---------

Co-authored-by: Ahmed Aladdin Mohamed <118504851+Ahmed-Aladdiin@users.noreply.github.com>

* FEAT: Stories (#17)

* FEAT(STORIES-HEADER-UI): Implement the ui of the story header in the chats screen

* FEAT(STORIES-MVVM-SETUP): Implement the arch for the mvvm arch

* FEAT(STORIES-MVVM-SETUP): Implement the arch for the mvvm arch

* FEAT(STORIES-MVVM-Implement): Implement the architecture logic for getting the users and their story, storing them using Hive

* FEAT(STORIES-MVVM-Implement): Implement the architecture logic for getting the users and their story, storing them using Hive

* FEAT(Add-STORIES-UI): Implement UI for add stories from camera or gallery

* FEAT(Add-STORIES-UI): Implement Logic for add stories from camera or gallery

* FEAT(Add-STORIES-SEENS): Implement UI and Logic for seens in stories

* FEAT(Add-STORIES-SEENS): Implement UI and Logic for seens in stories

* REF(STORIES): refactored the repository and view-model names from user to contact for better meaning

* FEAT(STORIES): Implement storage contacts in local storage to be available offline

* FEAT(STORIES): Implement save stories in storage to be available offline

* FEAT(STORIES): Implement cropping stories and draw on it before posting

* FEAT(STORIES): Implement Adaptivity in Home Screen

---------

Co-authored-by: Bishoywadea <bishoyw.fathy@gmail.com>

* FIX: Complete the integration between the Stories and Authentication (#18)

* fix: initial merging of stories and authentication

* fix: using wrong hive box for ContactModel

* fix: solve the problem with the drawer not opening

* feat(user): Add user settings and profile related pages (#19)

* feat(user): add change number option for the user

* feat(user): add change number option for the user

* feat(user): add profile info submission and validation

* feat(user): add profile header with animation

* feat(user): add change number option for the user

* feat(user): add change number option for the user

* feat(user): add change number option for the user

* feat(user): add change number option for the user

* refactor(auth): generalize the widgets

* refactor(auth): generalize the widgets

* feat(user): add change number option for the user

* feat(user): add change number option for the user

* feat(user): add change number option for the user

* refactor(user-profile): optimize code

* refactor(user-profile): add height to trailing

* feat(user-profile): block user screen #turn  1

* feat(user-profile): easter duck tgs

* feat(user): add change number option for the user

* refact(user): Integrate user settings with develop.

* test(user): add settings section unittest

---------

Co-authored-by: marwan2232004 <118024824+marwan2232004@users.noreply.github.com>

* test: Create flutter-test.yml

* TEST(USER): test user related widgets (#21)

* feat(users): Add blocking feature (#22)

* FEATURE(AUTH-CROSS): Implement the sign up screen with its components (#2)

* refactor(widget_test): correct app name

* feat(ui): add Palette class for managing colors

* style(ui): modified Palette class

* feat(auth): add signup route

* feat(auth): add signup-ui

* style(auth): add authTheme

* refactor(auth): add auth widgets

* refactor(auth): add dimensions and sizes classes

* refactor(auth): change app name to telware

* refactor(auth): add circle_button widget

* style(auth): switch to dimensions and sizes classes

* feat(auth): secure the password field

* feat(auth): adding validations

* chore(auth): adding shake and vibration packages

* refactor(auth): correcting title name

* refactor(auth): removing redundant import

* refactor(auth): rename the theme

* refactor(auth): convert to StatefulWidget and add TextButton

* refactor(auth): convert to appTheme

* refactor(auth): add extra dimension

* refactor(auth): remove redundant condition

* refactor(auth): remove redundant code and convert to StatefulWidget

* FEAT(AUTH-CROSS): Initiate the basic structure of the model and view-model (#3)

* fix: correct app name to telware

* feat(login-flow): create an enum for the different states of authentication

* feat(auth): create a token provider

* feat: initialize custom_lints

* feat(auth): create the local repository for authentication

* feat(auth): create the authentication view model

* feat(auth): initialize the authentication process in the TelWare widget

* doc(auth): add a todo to create the user provider

* feat(auth): open Hive box for auth tokens

* feat(auth): create the splash screen

---------

Co-authored-by: Marwan Alhameedy <118024824+marwan2232004@users.noreply.github.com>

* refactor(auth): simplify the sign-up screen code (#4)

* FEAT(AUTH-CROSS): Build the UI for the Log In screen (#5)

* refactor(auth): simplify the sign-up screen code

* chor(auth-cross): add the social media login icons

* feat: add new routes

* feat(auth-cross): build login screen ui

* refactor(auth-cross): move the social login widget to a separate file

* feat(auth-cross): add forget password button to login screen

* feat(auth-cross): make a widget for the auth floating action button

---------

Co-authored-by: Marwan Alhameedy <118024824+marwan2232004@users.noreply.github.com>

* FEATURE(AUTH-CROSS): Implement sign up logic (#7)

* feat(auth): add userModel

* feat(auth): create user provider

* refactor(auth): remove redundant import

* feat(auth): create app error class

* feat(auth): add user model to local repository

* feat(auth): create remote repository

* feat(auth): add signUp logic to auth-view-model

* fix(auth): add null check

* feat(auth): create dio base options

* feat(auth): update signUp logic and convert to ConsumerStatefulWidget

* refactor(auth): remove dummy files

* refactor(auth): remove todo comments

* feat(auth): open user model hive box

* fix(auth): correct the image path

* fix(auth): register the user model to hive

* fix(auth): remove password field

* fix(auth): syntax error

* FEAT(AUTH-CROSS): Verification-UI (#8)

* feat(auth): add action to on press function

* refactor(auth): make the code more modular

* chore(auth): add package for code verification

* refactor(auth): modify names and input parameters for better usage.

* feat(auth): add verification length

* feat(auth): add verification screen ui

* feat(auth): add confirmation dialog

* refactor(auth): remove redundant code

* refactor(auth): remove verification from login logic

* chore(auth): add phone_form_field package

* style(auth): enhancing the parameters for better usage

* feat(auth): add phone field widget

* refactor(auth): modify the input values

* refactor(auth): improve ui styles

* FEATURE(AUTH):  Implement log in logic (#9)

* feat(auth-cross): use the initial route property

* fix(auth): remove unnecessary import

* ref: add todo's to marwan

* feat(auth): implement the log in functionality

* feat(auth): implement log in and forgot password logic

* feat(auth): update auth state to a class

* feat(auth): add show toast and snack bar utils

* feat(auth): add delete token or user functionalities to the authentication local repository

* fix(auth): fix used status code in the log in logic

* feat(auth): add the success state to the AuthStateType

* feat(auth): connect the ui with the logic for the log in feature

* feat(auth): add the log out functionality

* fix(auth): handle different states for the forgot password method

* fix(auth): recompile generated files

---------

Co-authored-by: marwan2232004 <118024824+marwan2232004@users.noreply.github.com>

* feat(auth): add testing keys to the log in (#10)

specify the type of the keys

* feat(auth): handle log in without being verified scenario (#11)

* FEAT: Change the app icon and Splash screen icon (#12)

* feat: create app icon

* feat: update the splash screen with the logo and app name

* fix: correctly check success status codes

* feat: update user model to match api documentation

* fix: user correct key names in initialization

* feat: change get user method name to get me

* FIX: correctly validate passowrds and send email to verificatoin screen

feat(auth): add password validator

feat: add password validator and send the email to the verification screen

* feat(user): add profile info submission and validation

* feat(user): add profile info submission and validation

* feat(user): add profile info submission and validation

* feat(user): add profile header with animation

* feat(user): add profile info submission and validation

* feat(user): add profile info submission and validation

* refact: Refactor main.dart and core files

* feat(user): add change number option for the user

* feat(auth): blocked users screen

* refactor(auth): generalize the widgets

* refactor(auth): generalize the widgets

* feat(auth): blocked users section

* style(user-profile): reformat code

* refactor(user-profile): add new color

* refactor(user-profile): optimize code

* chore(user-profile): add lottie package

* refactor(user-profile): add height to trailing

* feat(user-profile): block user screen #turn  1

* feat(user-profile): easter duck tgs

* feat(user-profile): modify settings widget

* chore(user-profile): add dependencies

* refactor(user-profile): optimize code.

* feat(user-profile): add block users colors.

* feat(user-profile): enhance ```formatPhoneNumber```, add getRandomColor.

* feat(user-profile): add contacts hive box

* feat(user-profile): put permission for reading contacts.

* feat(user-profile): add contact model.

* feat(user-profile): read and store contacts in hive.

* feat(user-profile): add displaying image from memory or an avatar

* feat(user-profile): empty chat screen widget

* feat(user-profile): avatar generator from name initials

* feat(user-profile): reading contacts from hive, adding tabBar

* feat(user-profile): block user confirmation dialog.

* feat(user-profile): block user navigations.

* feat(block-users): solve testing problem.

* feat(block-users): solve testing problem.

---------

Co-authored-by: Ahmed Aladdin Mohamed <118504851+Ahmed-Aladdiin@users.noreply.github.com>
Co-authored-by: Ahmed Aladdin <aamieeu@gmail.com>
Co-authored-by: Mo2Hefny <moamensaied1@gmail.com>

* FEAT: Implement the OAuth functionality (#24)

* initiate the routing operation

* feat(auth): launch social auth

* feat: complete the oauth log in flow

* feat: use go_router for navigation

* fix: go router doesn't work

* feat: add transition to the sign up screen

* feat: add the new routes

* refactor: use go router instead or navigator

* Update settings_section.dart

* FEAT: add mock user functionality (#25)

* initiate the routing operation

* feat(auth): launch social auth

* feat: complete the oauth log in flow

* feat: use go_router for navigation

* fix: go router doesn't work

* feat: add transition to the sign up screen

* feat: add the new routes

* refactor: use go router instead or navigator

* feat: separate the local and remote repository for the auth

* same as before

* feat: mock the user authentication process

* fix: not using go_route in settings

* feat: add temporarly log out functionality

* Feature/stories (#26)

* FEAT(Session Managment): Implement UI for Devices Screen

* FEAT(Stories): Implement functions to integrate with backend

* REF(Stories): refactored the statemangment classes to be keepAlive

* REF(Stories): refactored story screen widget tree

* REF(Stories): refactored take story screen

* REF(Stories): refactored edit taken image screen

* REF(Sessions): add keys for devices screen

* feat(stories): adding .g files.

---------

Co-authored-by: marwan2232004 <118024824+marwan2232004@users.noreply.github.com>

* Test/sign up (#27)

* feat(auth): add recaptcha again.

* feat(auth): add signup keys.

* feat(auth): add signup and verification keys.

* feat(auth): modify signup body.

* feat(auth): integration with BE.

* fix(auth): remove unwanted code.

* Integration: integrate the login functionality with the back-end (#29)

* fix: modify the api calling code

* feat: use the user real profile data in the drawer

* feat: use user data in the drawer and profile header

* fix: fix wrong range of status code

* REF(Sessions): add update profile pic

* fix: wrong body in the forget password request

* fix: handle wrong spacing in the login and sign up screens

* feat: make the screen name 'No Name' in case of the using not having a name

* fix: merge brackets problem

* Update main.dart

* Update main.dart

* fix: add a missing import in the sign up screen

---------

Co-authored-by: Bishoywadea <bishoyw.fathy@gmail.com>

* feat: update the .gitignore

* fix: remove dublicate code from settings screen

* feat(user): add user view model (#31)

* feat(user): add local and remote repository providers

* feat(user): add user view model

* feat(user): update the screens to use the view model

* chore: add devtools options

* refact: handle conflicts

* feat(user): add username functionality

* refact(auth): naming convention. (#32)

* refactor(auth): naming convention.

* refactor(auth): remove empty tests.

---------

Co-authored-by: Mo2Hefny <moamensaied1@gmail.com>

---------

Co-authored-by: Mo2Hefny <moamensaied1@gmail.com>
Co-authored-by: Marwan Alhameedy <118024824+marwan2232004@users.noreply.github.com>
Co-authored-by: Bishoywadea <bishoyw.fathy@gmail.com>
Co-authored-by: Moamen Hefny <111001850+Mo2Hefny@users.noreply.github.com>
Co-authored-by: -NoName <108888519+Bishoywadea@users.noreply.github.com>
@Mo2Hefny Mo2Hefny deleted the feature/user-profile branch November 27, 2024 12:45
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants