Skip to main content

Sign Up

This guide explains how to implement user registration in the Mentor Calwe application.

Personal Information

Endpoint

  • Method: POST
  • URL: /v1/coach/register

Request Headers

HeaderValueRequired
Content-Typeapplication/jsonYes
Acceptapplication/jsonYes

Request Body

ParameterTypeDescriptionRequired
first_namestringUser's first nameYes
middle_namestringUser's middle nameYes
last_namestringUser's last nameYes
emailstringUser's email addressYes
email_confirmationstringUser's email address confirmationYes
passwordstringUser's passwordYes
password_confirmationstringUser's password confirmationYes
phonestringUser's phoneYes
genderstringUser's genderYes
birth_datestringUser's birth dateYes
nationality_idstringUser's nationalYes
country_idstringUser's countryYes
residence_placestringUser's residence placeYes
avatarstringUser's avatarYes
accept_termsstringUser's accept termsYes

Success Response

{
"success": true,
"message": "تم التسجيل بنجاح.",
"data": {
"id": "uuid",
"firstName": "Ahmed",
"lastName": "Mohammed",
"email": "emample@gmail.com",
"birthDate": "1993-12-31",
"phone": "966000000000",
"gender": "MALE",
"isPhoneVerified": false,
"nationalityId": "uuid",
"countryId": "uuid",
"residencePlace": "city",
"acceptTerms": true
},
"statusCode": 200
}

Error Responses

Email And Phone Are Already Exists (422)

{
"success": false,
"message": "حدث خطأ في البيانات المرسلة يرجى التحقق منها.",
"errors": {
"email": "قيمة البريد الإلكتروني مُستخدمه من قبل.",
"phone": "قيمة رقم الهاتف مُستخدمه من قبل."
},
"data": [],
"statusCode": 422
}

Invalid Email Format (422)

{
"success": false,
"message": "حدث خطأ في البيانات المرسلة يرجى التحقق منها.",
"errors": {
"email": "صيغة البريد الإلكتروني غير صحيحة."
},
"data": [],
"statusCode": 422
}

Update Personal Information

Endpoint

  • Method: POST
  • URL: /v1/coach/update-register/{coach}

Request Headers

HeaderValueRequired
Content-Typeapplication/jsonYes
Acceptapplication/jsonYes

Request Body

ParameterTypeDescriptionRequired
first_namestringUser's first nameYes
middle_namestringUser's middle nameYes
last_namestringUser's last nameYes
emailstringUser's email addressYes
passwordstringUser's passwordYes
password_confirmationstringUser's password confirmationYes
phonestringUser's phoneYes
genderstringUser's genderYes
birth_datestringUser's birth dateYes
nationality_idstringUser's nationalYes
country_idstringUser's countryYes
residence_placestringUser's residence placeYes
accept_termsstringUser's accept termsYes

Success Response

{
"success": true,
"message": "تم التسجيل بنجاح.",
"data": {
"id": "uuid",
"firstName": "Ahmed",
"lastName": "Mohammed",
"email": "emample@gmail.com",
"birthDate": "1993-12-31",
"phone": "966000000000",
"gender": "MALE",
"isPhoneVerified": false,
"nationalityId": "uuid",
"countryId": "uuid",
"residencePlace": "city",
"acceptTerms": true,
},
"statusCode": 200
}

Error Responses

Email And Phone Are Already Exists (422)

{
"success": false,
"message": "حدث خطأ في البيانات المرسلة يرجى التحقق منها.",
"errors": {
"email": "قيمة البريد الإلكتروني مُستخدمه من قبل.",
"phone": "قيمة رقم الهاتف مُستخدمه من قبل."
},
"data": [],
"statusCode": 422
}

Invalid Email Format (422)

{
"success": false,
"message": "حدث خطأ في البيانات المرسلة يرجى التحقق منها.",
"errors": {
"email": "صيغة البريد الإلكتروني غير صحيحة."
},
"data": [],
"statusCode": 422
}

Phone Verification

Endpoint

  • Method: POST
  • URL: /v1/coach/phone-verification

Request Headers

HeaderValueRequired
Content-Typeapplication/jsonYes
Acceptapplication/jsonYes

Request Body

ParameterTypeDescriptionRequired
phone_verified_codestringVerification code received via phoneYes

Success Response

{
"success": true,
"message": "تم التحقق من الكود بنجاح",
"data": {
"phone": "566333222",
"isPhoneVerified": true
},
"statusCode": 200
}

Error Responses

Invalid Code (422)

{
"success": false,
"message": "كود التفعيل غير صحيح",
"data": [],
"statusCode": 301
}

Professional Information

Endpoint

  • Method: POST
  • URL: /v1/coach/register-professional-data/{coach}

Request Headers

HeaderValueRequired
Content-Typeapplication/jsonYes
Acceptapplication/jsonYes

Request Body

ParameterTypeDescriptionRequired
aboutstringAbout MentorNo
qualified_idstringMentor's qualifiedYes
coach_level_idstringMentor's levelYes
degree_idstringMentor's degreeYes
universitystringMentor's universityYes
certificate_namestringMentor's certificate nameYes
specializationstringMentor's specializationYes
languages_idsstringMentor's languagesYes
categories_idsstringMentor's categoriesYes
certificate_filesfileMentor's certificate filesNo
cv_filefileMentor's cv fileNo
has_accreditationboolMentor's has accreditationNo
years_of_experiencestringMentor's years of experienceYes
experiencesstringMentor's experiencesYes
interestsstringMentor's interestsNo
achievementsstringMentor's achievementsNo
community_participationstringMentor's community participationNo
avatarfileUser's avatarNo
experience_filefileUser's avatarNo

Success Response

{
"success": true,
"message": "تم التسجيل بنجاح.",
"data": {
"id": "uuis",
"about": "string",
"university": "string",
"coachLevelId": "uuid",
"avatar": "https:avatar.png",
"certificateFiles": [
{
"id": 787,
"name": "image.png",
"type": "png",
"link": "https://image.png"
}
],
"cvFile": null,
"categories": ["uuid"],
"languages": ["uuid"],
"degrees": ["uuid"],
"qualifications": ["uuid"],
"token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiJ9...",
"tokenType": "Bearer",
"experienceFiles": null
},
"statusCode": 200
}

Error Responses

Validation (422)

{
"success": false,
"message": "حدث خطأ في البيانات المرسلة يرجى التحقق منها.",
"errors": {
"certificateFiles": "certificate files حقل مطلوب",
},
"data": [],
"statusCode": 422
}

Payment Method Type

Endpoint

  • Method: POST
  • URL: /v1/coach/payment-method-type

Request Headers

HeaderValueRequired
Content-Typeapplication/jsonYes
Acceptapplication/jsonYes

Request Body

ParameterTypeDescriptionRequired
payment_typestringMentor's payment method typeYes
coach_idstringMentor's idNo
acknowledgmentstringAcknowledgmentYes
phonestringMentor's payment method phoneNo
emailstringMentor's payment method emailNo

Success Response

{
"success": true,
"message": "تم التسجيل بنجاح.",
"data": {
"id": "uuid",
"paymentType": 1,
"accountIdentifier": "566333000",
"coachId": "uuid"
},
"statusCode": 200
}

Activate Email Account

Endpoint

  • Method: POST
  • URL: /v1/coach/activate-account

Request Headers

HeaderValueRequired
Content-Typeapplication/jsonYes
Acceptapplication/jsonYes

Request Body

ParameterTypeDescriptionRequired
emailstringEmail address used in signup requestYes
tokenstringVerification code received via emailYes

Success Response

{
"success": true,
"message": "تم تفعيل بريدك الإلكتروني بنجاح.",
"data": {
"email": "exaple@gmail.com"
},
"statusCode": 200
}

Error Responses

Invalid Code (422)

{
"success": false,
"message": "رمز التنشيط هذا غير صالح.",
"errors": {
"token": "رمز التنشيط هذا غير صالح."
},
"data": [],
"statusCode": 422
}

Resend Activate Email Account

Endpoint

  • Method: POST
  • URL: /v1/coach/resend-activation-email

Request Headers

HeaderValueRequired
Content-Typeapplication/jsonYes
Acceptapplication/jsonYes

Request Body

ParameterTypeDescriptionRequired
emailstringEmail address used in signup requestYes

Success Response

{
"success": true,
"message": "تم إرسال رسالة التفعيل إلى بريدك الإلكتروني",
"data": [],
"statusCode": 200
}

Resend Verification Phone Code

Endpoint

  • Method: POST
  • URL: /v1/mentor/resend-verification-phone-code

Request Headers

HeaderValueRequired
Content-Typeapplication/jsonYes
Acceptapplication/jsonYes
AuthorizationBearer tokenYes

Success Response

{
"success": true,
"message": "تم إرسال رمز التحقق بنجاح",
"data": [],
"statusCode": 200
}

Error Responses

Unauthorized (401)

{
"success": false,
"message": "غير مصرح",
"data": null,
"statusCode": 401
}

Too Many Requests (429)

{
"success": false,
"message": "تم تجاوز عدد المحاولات المسموح بها",
"data": null,
"statusCode": 429
}

Change Phone Number

Endpoint

  • Method: POST
  • URL: /v1/mentor/change-phone-number

Request Headers

HeaderValueRequired
Content-Typeapplication/jsonYes
Acceptapplication/jsonYes
AuthorizationBearer tokenYes

Request Body

ParameterTypeDescriptionRequiredValidation Rules
phonestringNew phone numberYesrequired, phone:SA,unique:mentors,phone

Success Response

{
"success": true,
"message": "تم تغيير رقم الهاتف بنجاح",
"data": [],
"statusCode": 200
}

Error Responses

Validation Error (422)

{
"success": false,
"message": "بيانات غير صحيحة",
"data": {
"phone": [
"رقم الهاتف غير صحيح",
"رقم الهاتف مسجل مسبقاً"
]
},
"statusCode": 422
}

Important Notes

Registration Process

  • Multi-step registration process
  • Personal information required first
  • Professional information required second
  • Email and phone verification required
  • Terms acceptance mandatory
  • Profile completion tracking

Personal Information

  • All fields are required
  • Email must be unique
  • Phone must be unique
  • Password must meet security requirements
  • Birth date validation
  • Gender selection required
  • Nationality and country selection
  • Avatar upload supported

Professional Information

  • Multiple file uploads supported
  • Certificate files required
  • CV file optional
  • Experience files optional
  • Multiple languages selection
  • Multiple categories selection
  • Years of experience required
  • Detailed experience description

Verification System

  • Email verification required
  • Phone verification required
  • Verification codes expire
  • Limited resend attempts
  • Rate limiting applied
  • Verification status tracking
  • Automatic reminders

Payment Information

  • Multiple payment methods supported
  • Account verification required
  • Payment details encryption
  • Secure storage
  • Regular validation
  • Update history tracking

Security Features

  • Password hashing
  • Token-based authentication
  • Rate limiting
  • Session management
  • Activity logging
  • Fraud prevention
  • Data encryption

User Experience

  • Clear validation messages
  • Progress tracking
  • Step-by-step guidance
  • Error handling
  • Status notifications
  • Profile completion indicators

Data Management

  • Secure data storage
  • Regular backups
  • Data retention policies
  • Privacy compliance
  • Data validation
  • Update tracking

Technical Requirements

  • File size limits
  • Supported file types
  • Image optimization
  • Cache management
  • Performance optimization
  • Error logging

Compliance

  • Terms acceptance
  • Privacy policy
  • Data protection
  • User consent
  • Regulatory compliance
  • Audit logging