Change directory to the client
cd client
Install packages
npm i
Run Server
npm run dev
Reza Corporation Agent Referral Backend, Basic referral system backend.
Recruiters will create account and use their unique referral link to recruit other users, those Recruits will complete a transaction and based on that transaction, the recruiter will get commission
User
model contains Account information,
email
: Email [Username]first_name
: Stringlast_name
: Stringrole
: Int [Recruiter | Recruit | Admin]created_at
: Time Stamppassword
: Hashcity
: Stringstate
: Stringzip
: Stringaddress
: Stringphone_number
: StringRecruiter
model contains recruiter information and referral code
user
: User Model Instanceref_code
: Inttime_stamp
Date TimeRecruit
model contains Recruit Information
nmls_id
: Stringdre_license
: Stringcba_license
: Booleanassociation
: StringReferral
Contains Relationship between Recruit and Recruiter
Recruiter
: User Model InstanceRecruit
: User Model InstanceTransaction
can be done by a recruit
Recruit
: User Model InstanceAmount
: Floattime_stamp
Date TimeRecruit
: User Model InstanceRecruiter
: User Model Instancecommission
: Floattime_stamp
: Date TimeTransaction
: Transaction IDRecruit
: User Model Instancecommission
: Commission Model Instance []amount
: Floattime_stamp
: Date TimeTransaction Creation Adds A New Commission
Clone the repo
git clone https://github.com/khan-asfi-reza/real-estate-referral-app
Install packages
pip install -r requirements.txt
Test
python manage.py test
Run
python manage.py runserver
api/auth/login
Method: POST
Request Body:
{
email: "[email protected]",
password: "Password"
}
Response:
{ token: "String",
user: {
email: "[email protected]",
role: 1
}
}
api/auth/change-password/
Method: POST
Request Body:
{
old_password: "Old Password",
new_password: "New Password"
}
Response: {token: String}
api/auth/user/update/
Method: PATCH
Partial Update
Request Body:
{
first_name: "String",
last_name: "String",
phone_number: "String",
address: "String",
city: "String",
state: "String",
zip: "String",
}
Response: Same as body
user/email/check
Method: POST
Request Body:
{
email: "Email"
}
Response: {msg: 0 / 1}
/api/core/ref-code
Method: POST
Request Body
{
"ref_code": "123455"
}
Response
{
email: "[email protected]",
full_name: "Full Name"
}
/api/core/recruiter/create
Method: POST
Request Body
{
user: {
first_name: "String",
last_name: "String",
phone_number: "String",
address: "String",
city: "String",
state: "String",
zip: "String",
password: "String"
}
}
Response
{
token: "String",
data: {
"key": "value"
}
}
Data Same as Request Body
/api/core/recruit/
METHOD: POST
Request Body
{
user:{
first_name: "String",
last_name: "String",
phone_number: "String",
address: "String",
city: "String",
state: "String",
zip: "String",
password: "String"
},
phone_number: "String",
nmls_number: "String",
dre_license: "String",
ref_code: "String"
}
Response
{
token: "String",
data: {
"key": "value"
}
}
Data Same as Request Body
api/core/referral
METHOD: GET
Headers : {Authorization: "Token <YOUR TOKEN>"}
Query Params: ?page=<page_number>
Response Body
{
page: 1,
next: "Link",
prev: "Link",
results: [
{
id: 1,
recruiter: 1,
recruit: {
email: "Email",
first_name: "First Name",
last_name: "Last Name"
},
time_stamp: "2020-02-02 12:19:34.45666"
}
]
}
api/core/recruiter/info
METHOD: GET
Headers : {Authorization: "Token <YOUR TOKEN>"}
Response Body
{
bonus: 100,
total_recruited: 5,
}
api/core/recruiter
METHOD: GET
Headers : {Authorization: "Token <YOUR TOKEN>"}
Response Body
{
ref_code: "<UNIQUE REF CODE>"
}
api/core/recruite/commission
METHOD: GET
Headers : {Authorization: "Token <YOUR TOKEN>"}
Query Params: ?page=<page_number>
Response Body
{
page: 1,
next: "Link",
prev: "Link",
results: [
{
id: 1,
recruiter: 1,
recruit: {
email: "Email",
first_name: "First Name",
last_name: "Last Name"
},
time_stamp: "2020-02-02 12:19:34.45666",
commission: 100,
transaction: 1,
completed: true
}
]
}
api/auth/password/forget
METHOD: POST
POST BODY
{
email: "[email protected]"
}
Response
{
msg: 1,
text: "Response Text"
}
msg - 0 - Fail
msg - 1 - Success
api/auth/password/forget/validate
METHOD: POST
POST BODY
{
unqiue_link: "PQRSTUVWX123"
}
Response
{
msg: 1,
text: "Response Text"
}
msg - 0 - Fail
msg - 1 - Success
api/auth/password/forget/reset
METHOD: POST
POST BODY
{
unqiue_link: "PQRSTUVWX123",
email: "EMAIL",
password: "PASSWORD"
}
Response
{
msg: 1,
text: "Response Text"
}
msg - 0 - Fail
msg - 1 - Success
SendEmail
Import Path: Core.send_email.SendEmail
from server.apps.Core import SendEmail
SendEmail.send_email(
subject="MAIL SUBJECT",
body="Mail Body",
to="MAIL SEND TO",
)
SendEmail.send_custom_context_html_email(
template="TEMPLATE NAME",
subject="MAIL SUBJECT",
context="CONTEXT TEXT",
to="EMAIL SEND TO"
)