# My Lê
# Readme.md
# FE
## authentication
1. New User can register for a new account with name, email, password.👌
2. User have to log in with email and password👌
3. User stay logged in with refreshing page.👌
4. On the profile page, user can see: name , ava, aboutMe,
+ Option số job đã tuyển, số job đã apply thành công
6. on the left side of profile page, User can switch tabs between
1. profile can edit all information (Except email)
2. manage Job: +filter by status "done", "ongoing" --> pagination
3. manage resume: +filter by status "pending", "approved" , "rejected" --> pagination
## job
1. user can see homepage with carousel and some job --> click for detail
2. user can see list all of job: search, filter,pagination
3. user can click to see more detail about job and Q&A of job
# LOGIN REQUIRED
## create job
4. User can create a new job . User can see the detail job after successfully created and on the top of list of jobs
5. author can update job
6. author can delete job
## Q&A
7. User can ask on a job detail. User can see the comment after successfully created.
8. User can edit --> isEdited: true --> UI
9. User can delete cmt
10. Employer can answer each question. All user can see an answer after successfully created.
optional: employ can delete or update answer
## respond request
11. user can apply job in page detail with application form which have message
12. user can cancel job in page detail
14. employer can respond "approved" , "rejected" application --> toasty
15. when approved, secret information will be appeared in manage
### Target User Profile
14. User can see the profile of other users.
# BE
## User flow (UF)6 😂chưa ktra expired accesstoken? cần k?
1. User can create account with email and password and name 👌
2. User can login with email and password👌
3. User can login with accessToken 👌
4. User can get single user profile by id (login required)👌😂checkid
5. Owner can update own account profile include password👌(except: email)
6. Owner can deactivate own account👌
**+** optional: User can see a list of all users
- {{host}}/user

- check id

----------
## Job Flow (JF)6 +++
1. User can create a job👌😂check link img
2. Author can edit job👌😂check link img
3. Author can deactivate job👌
4. user can get a single job by id job👌😂checkid
5. User can see a list of all jobs (pagination,sort,search)👌
- user can sort by acs/decs date
- user can search by name", "type", "category", "location", "status"😂location include
6. Author can get all own job (pagination,sort,search)👌
- user can sort by "acs"/"decs" date
- user can search by name", "type", "category", "location", "status"😂location include
- {{host}}/job

------------
## comment flow (CF)5: 14g
1. User can create a comment to job post👌
2. Author of Comment can update that comment👌
3. Author of Comment can delete that comment👌
4. Employer can reply comment👌
5. User can see comment by jobid (not login required), pagination👌
- search by reply === "missing" :-> CHƯA REPLY, GIÚP AUTHOR FILTER
- host/comment
--> :id = _commentId

---------------------
## Candidate flow (CF)7
1. user can apply job👌
2. user can cancel job👌
3. author can respond request👌
4. author can get list application By JobId +search by status👌
5. user can get own application List +search by status👌
- host/application

# schema:
**1. users collection:**
_userId:""
name: required
email: required
password: required
avatarUrl:
aboutMe:
isDeleted:
timestam
**2. jobs collection**
_jobId:
authorId:
name:
type: fulltime, parttime, temporary
category: Community, Environment, Health care, Sports, Wildlife Protection
description:
location:
imageUrl:
status: "done","ongoing"
isDeleted:
detailedInformation: <<gửi khi ứng viên được approved>>
isFeatured: <<true hiện trên home page>>
timestamp
**3. comment collection**:
_commentId:
jobId:
authorCommentId:
content:
reply:
isEdited:
timestamp
**4. Apllication**:
jobId
employerId
candidateId
message:
status: "pending", "approved" , "rejected"
timestamp
## BONUS featured: DONATE, MAP, RATING
DONATE: 1d
https://www.npmjs.com/package/react-paypal-button-v2
MAP: 3d
googlemap api
tính khoang cách --> 10 min
