-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathuse cases-Sakan.txt
202 lines (142 loc) · 3.94 KB
/
use cases-Sakan.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
1. user can signup with email: DONE!
1.1. choose investor/client
1.2. choose signup by email
1.3. fill all fields
Endpoint: POST '/user/signup'
Request:
{
'firstName': 'string',
'lastName': 'string',
'email': 'string',
'password': 'string',
'userType': string,
'phoneNumber': 'string'
}
----------------------
2. user must verify email:
2.1. send verification mail
2.2. press link activate account
2.3. redirect to account activated page
Endpoint: POST '/user/email/confirm'
Request:
{
'token': 'string'
}
------------------------
3. user can signup with facebook:
3.1. choose investor/client
3.2. choose signup with facebook
3.3. open fb login widget
------------------------
4. user can signup with google:
4.1. choose investor/client
4.2. choose signup with google
4.3. open google login widget
------------------------
5. user can login to the system: DONE!
5.1. yemla form (email,password)
5.2. y login 3ala client law client, investor law investor
Endpoint: POST '/user/login'
Request:
{
'email': 'string',
'password': 'string'
}
Response:
{
"data": {
"token": "string",
"userType": "string"
},
"message": "string"
}
------------------------
6. user can login with facebook
------------------------
7. user can login with google
------------------------
8. user can logout
8.1. delete jwt token redirect homepage
Endpoint: GET '/user/logout'
-------------------------
9. user can forget password:
9.1. enter email
9.2. mail sent with token
9.3. redirect to new password
Endpoint: POST '/user/password/forget'
Request:
{
'email': string
}
-------------------------
10. user can reset password: DONE!
10.1 enter password
10.2 enter confirm password
Endpoint: POST '/user/password/reset'
Request:
{
'token': string,
'password': string
}
------------------------
11. user can show his profile info:
11.1. status bar 3ala asas data filled
11.2. law client show or law investor show
Endpoint: GET '/user'
------------------------
12. user can edit his profile info:
12.1. change fields
12.2. emla fields elly fadya
Endpoint: PUT '/user/edit'
Request:
{
kol haget user + investor/client
}
-------------------------
13. investor can send an Add Property Request: DONE!
13.1. investor fills his Property info
13.2. send request to admin to approve Property
Endpoint: POST '/request/addProperty'
Request:
{
"propType": "string",
"address": {
"street": "string",
"city": "string"
},
"title": "string",
"description": "string",
"bedroomNum": "string",
"bathroomNum": "string",
"unitArea": "string",
"rentValue": "number",
"buyValue": "number",
geospace: "string",
photos: "string[]"
}
-------------------------
14. user can get wallet value:
14.1. user can see wallet value in dashboard
14.2. gets updated realtime
Endpoint: GET '/user/wallet'
-------------------------
15. client can add to favorite properties:
15.1. client selects property
15.2. clicks add to favs button
Endpoint: POST 'client/fav'
Request:
{
propId: 'string'
}
16. client can remove from favorite properties:
17. client can reserve a property:
18. client can buy a property:
19. client can rent a property:
20. client can get property by filters:
21. client can check upcoming invoice:
22. client can pay an invoice:
23. client can search for property:
24. chat:
25. admin can view add property requests:
26. admin can approve/decline requests:
27.