---
# System prepended metadata

title: Untitled

---

### Nova

- to Help developers practice and pass technical interviews with the help of our professional interviewers.
- We have developers for many specialities.

### Tempaltes:
- https://www.pramp.com/#/
- https://blog.preplaced.in/top-mock-interview-websites/
- https://www.techmockinterview.com/
- https://mockmate.com/
- https://myinterviewpractice.com/
- https://www.mymockinterview.com/
- https://www.interviewbit.com/mock-interview/
- https://www.makeuseof.com/tag/mock-interview-websites/
- https://interviewing.io/
- http://www.gainlo.co/#!/
- https://interviewbuddy.in/#App

Landing:
![](https://i.imgur.com/jJS0xjJ.png)
![](https://i.imgur.com/4iBELoy.png)
![](https://i.imgur.com/1Xxm1DQ.png)
![](https://i.imgur.com/bq2lSsD.png)
![Uploading file..._l9ugqlln5]()

color => https://mockmate.com/about/
- 
### Technologies :

- Node.js
- React
- Express
- TypeScript

## User Stories

### Homepage

- Sign up as a user()
- Log in as a interviewee/interviewer
- Log in as an admin
- Logout


### During Sign up

- Create account with personal information (Full Name, Email, Password)
- Fill up a form related to the interview I want to be asked in (Interview Experience (0 - 5)

#### 0 -> No Experience
#### 5 -> Professional


- About the user. (Input)
- CV Link (optional)
- Image Link (optional)

### Finished registering the user
 
After Sign up, before Assigning an interview.


#### Specializtion (One Option) :
- Frontend.
- Backend.
- Full Stack.
- Data Structure & Algorithm. 
- Testing Automation.
- Security.
- Dev Ops.

#### Questions (Multiple Checks):
- Technical.
- Analytical.
- Algorithms.
- System Design.

#### Language to be interviewed with (One Option):
- JavaScript
- PHP
- C++
- C#
- Java
- C
- Go
- Python
- Ruby

#### Available Slots to schedule (One Option)

- Get the Time/Date where intervieweres are available based on user inputs.
- User Can only pick one at a time.



## Users Settings

### As a User 
- Update User info.
- Schedule an interview with video chat (zoom/meet)
- Cancel, edit date (limit frame time) intreview details.
- View interviews history (general info about interview and interviewer reviews and feedback)
- Add review about user Satisfaction with the interview

### As an Interviewer
- Fill up a form related to the interview (Interview Experience, Specializtion, Categories (ex/ technical, non technical ), Available Slots to schedule)
- Update user info
- Cancel intreview details
- View interviews history
- Add review or rating after finish interview 


### As an Admin 
- Dashboard Page.
- Add Interviewer.
- Get and Delete all users.




### interviewee(user)

- Sign up
- Sign in 
- Landing page
    - about
    - interviewers
    - resourses
    - start interview
    - upcoming interviews
    - review (testimonials)
- Profile
    - history with reviews
    - coming interview
    - setting(info section) 
    - logout
    - start interview


### interviewer: 
- Sign in 
- Landing page
    - about/steps
    - interviewers
    - resourses
- Profile
    - history with reviews
    - coming interview
    - setting(info section) 
    - Interviews date
    - logout


### Admin:
- sign in
- create interviewer/delete/list
- users delete/list 











### Routes

#### Frontend

- Nova.com/
- **/** , Homepage, Signup/Login Modal for users.
- **/login** , Login for interviewer.
- **/'username'/dashboard** , User Dashboard, Protected
- **/'username'/profile** , User Profile Settings, Protected
- **/'username'/history** , Interview History, Protected
- **/'username'/reviews** , Interview Reviews, Protected
- **/admin/dashboard** , Admin Dashboard, Protected

#### Backend

**/api/v1/** :




1. Figma Design (Decide pages)
2. Routes.
3. Database Schema.


### Hacker Rank API
https://www.hackerrank.com/work/apidocs#!/Introduction/options_intro_api

### Codewars api
https://dev.codewars.com/#get-code-challenge




-------------------------

* Back-End
    - Login
        - POST api/login
        - POST api/admin/login
    - Signup
        - POST /api/signup
    - Interviewers Profile
    - Interviewee Profile
        - GET /api/interviewees/intervieweeId(name, image, about, )
        - POST api/interview (+ send an email)
        - GET api/interview?status
        - PATCH api/interview (+ send an email)
        - DELETE api/interview (+ send an email) 
        - GET /api/interview/review?page=?&favorite
        - PATCH /api/interview/review/interviewId (edit saved)
        - PATCH api/interviewee
        - PATCH api/interviewer
        - POST api/interviewer/schedule 
    - Landing page
        - 
    - Dashboard
        - POST /api/logout
        - GET /api/interviewers?page=&status=
        - DELETE api/interviewers/interviewerId
        - PATCH api/interviwers/interviewerId (send update status)
        - POST api/interviewers (send data)
        - GET api/interviewees?page=
        - DELETE api/interviewees/intervieweeId



* Front-End
    - Login
        - form component
        - admin login page
    - Signup
        - form component
        - update profile popup
    - Interviewers Profile
    - Interviewee Profile
        - users nav
        - user info section (without btn in interviewe profile)
        - interview component (without edit in interviewe profile)
        - review component
        - setting component 
        - profile tabs section
        - start interview form
        - add Interviwer form step 2
        - add Interviwer form step 3
        - add Interviwer form step 4 (calender)
        - add Interviwer form step 5 (info + about + about the edit or the cancel)
        - Interviewer available date section

    - Landing page
        - header component
        - Interviwers component 
        - How Nova Practicing Works component
        - We Provide section
        - Join our team section 
        - resources section
        - review about us 
        - companies section 
        - challenge section

    - Dashboard
        - Admin nav 
        - Footer
        - table
        - table section (title + table + pagination)
        - Interviwer page 
        - Interviwer form
            - add Interviwer form step 1
            - add Interviwer form step 2
            - add Interviwer form step 3
        - Interviewee page
        
        
        

Landing Page:
- [ ] resources section
- [ ] review about us
- [ ] companies section 
- [ ] challenge section
- [ ] add review from interviewer(from history)



---------------------------

Database Schema

Admin : 
          - Full Name
          - Email
          - Password
          
          
Interviewee :
            - full_name
            - email
            - password
            - about  (optional)
            - cv_url (optional)
            - img_url (optional)
            - is_verified (default: false)
            - experience
            - interviews = [
            {
             - interviewerId
             - date
             - time
             - review
             }
            ]
            
Interviewer :
            - full_name
            - email
            - password
            - about  (optional)
            - cv_url (optional)
            - img_url (optional)
            - status  ['Pending', 'Accepted', 'Rejected'] default: 'Pending'
            - experience
        


Week-1: figma + setup + database + Auth proccess(
sign up front + back
sign in front + back
user middleware + admin middleware
checkUser front (fetch user data in cookie )

fetch('/api/checkUser', check cookie + send its token )
)


- [ ] setup the project (file strucure + eslint + packages + server setup)    --Abed
- [ ] setup database  ---Mahmoud
- [ ] fake data  --Abed

- [ ] sign up back + send verify email  --Mahmoud
- [ ] verify back (update the state)
- [ ] login back POST() ---Abed
- [ ] user middleware --Manar
- [ ] admin middleware ---Manar
- [ ] checkUser route GET /api/checkUser Manar
- [ ] 
- [ ] checkUSER FRONT --Abed  /api/checkUser
- [ ] login user front --- Mahmoud
- [ ] login admin front --- Mahmoud
- [ ] Sign up front   ---Manar
- [ ] 
Week-2 interviewer profile 
Week-3 interviewee profile
Week-4 landing page 



-----------------------------

## Rules

### Work time & daily standup
- Manar
- Abed
- Mahmoud
- Raghad Mezied => `- 6 PM`

#### Daily standup
10:00

### Style Guide
- async/await, axios
- {message: , data:},
- {error: }
- TESTS
- Branch
    - [ ] every branch relates to specific issue
    - [ ] every branch linked to its issue.
    - [ ] issueNumber-feature (ex: 2-login)
    - [ ] commit changes early
    - [ ] commit should be descriptive and not too short neither too long.
    - [ ] create branch from main
    - [ ] pull main frequentally
- PR
    - [ ] while work not done open it with label `in progress`
    - [ ] when work is done change label to `awaiting review`
    - [ ] While PR approved change label to `done`, merge, close related-issue and delete branch.
    - [ ] change issue label to  `done`
    - [ ] the one whose open the PR should merge it
    - [ ] 3 approved requires to merge PR.
    - [ ] PR should have suffecient, descriptive details.
    (image of front component)
    - [ ]  git fetch `branch-name` locally, then check everything works as should it be.
    - [ ] add comments to PR, So changes will be documented, change label to `request changes`.
    - [ ] the one who request changes should resolve it.
    - [ ] pre-commit to check tests and linting.
- labels
    - awaiting-review
    - to-do
    - done
    - front
    - back
    - route 
    - in-progress
    - request changes
- files naming, variables:  camelCase
- General rules
    - all our folders should have `index.js`, every modules exported from.
    - add comments to explan complex code.
    - test every backend route. (supertest, unit test)
    - destructre your vars.

- What to do early morning
    - Review pending PR.
    - share your updates, what are you working on, time you will spend on.
    
### Our UI


### colors and fonts type
**Font:** 

**font-family:

**Colors:**

--------------------------------------
## **Issues template** :

## Backend issue:
Title should be: METHOD /full-route with labels Back, Route

### Description:
what route should do

### Protected: Yes/No

### Required middleWares:

### Request body:
```js
{
  x: 'y'
}
```
### Validation:
```js
{
  x: string.min(19)
}
```
### Response:
 - Success - status code 200
 ```js
{ 
data: [{
          id,
          name ,
          description,
          ...
      }], 
message: 
}
```
 - Failed - status code 400
```js
{ 
message: ''
}
```

### Tests:
200
400
401
    
   ---------------- 

## Front-end Issues    
    
title should be: Name of the page with labels front, Route
### Description
`description`   

* Route:	``'/'``
* Signed in only:	`false`
* Admin only:	`false`

### Screenshot:
    Screenshot from figma
    
### Component:
### Props:### Nova

- to Help developers practice and pass technical interviews with the help of our professional interviewers.
- We have developers for many specialities.

### Tempaltes:
- https://www.pramp.com/#/
- https://blog.preplaced.in/top-mock-interview-websites/
- https://www.techmockinterview.com/
- https://mockmate.com/
- https://myinterviewpractice.com/
- https://www.mymockinterview.com/
- https://www.interviewbit.com/mock-interview/
- https://www.makeuseof.com/tag/mock-interview-websites/
- https://interviewing.io/
- http://www.gainlo.co/#!/
- https://interviewbuddy.in/#App

Landing:
![](https://i.imgur.com/jJS0xjJ.png)
![](https://i.imgur.com/4iBELoy.png)
![](https://i.imgur.com/1Xxm1DQ.png)
![](https://i.imgur.com/bq2lSsD.png)
![Uploading file..._l9ugqlln5]()

color => https://mockmate.com/about/
- 
### Technologies :

- Node.js
- React
- Express
- TypeScript

## User Stories

### Homepage

- Sign up as a user()
- Log in as a interviewee/interviewer
- Log in as an admin
- Logout


### During Sign up

- Create account with personal information (Full Name, Email, Password)
- Fill up a form related to the interview I want to be asked in (Interview Experience (0 - 5)

#### 0 -> No Experience
#### 5 -> Professional


- About the user. (Input)
- CV Link (optional)
- Image Link (optional)

### Finished registering the user
 
After Sign up, before Assigning an interview.


#### Specializtion (One Option) :
- Frontend.
- Backend.
- Full Stack.
- Data Structure & Algorithm. 
- Testing Automation.
- Security.
- Dev Ops.

#### Questions (Multiple Checks):
- Technical.
- Analytical.
- Algorithms.
- System Design.

#### Language to be interviewed with (One Option):
- JavaScript
- PHP
- C++
- C#
- Java
- C
- Go
- Python
- Ruby

#### Available Slots to schedule (One Option)

- Get the Time/Date where intervieweres are available based on user inputs.
- User Can only pick one at a time.



## Users Settings

### As a User 
- Update User info.
- Schedule an interview with video chat (zoom/meet)
- Cancel, edit date (limit frame time) intreview details.
- View interviews history (general info about interview and interviewer reviews and feedback)
- Add review about user Satisfaction with the interview

### As an Interviewer
- Fill up a form related to the interview (Interview Experience, Specializtion, Categories (ex/ technical, non technical ), Available Slots to schedule)
- Update user info
- Cancel intreview details
- View interviews history
- Add review or rating after finish interview 


### As an Admin 
- Dashboard Page.
- Add Interviewer.
- Get and Delete all users.




### interviewee(user)

- Sign up
- Sign in 
- Landing page
    - about
    - interviewers
    - resourses
    - start interview
    - upcoming interviews
    - review (testimonials)
- Profile
    - history with reviews
    - coming interview
    - setting(info section) 
    - logout
    - start interview


### interviewer: 
- Sign in 
- Landing page
    - about/steps
    - interviewers
    - resourses
- Profile
    - history with reviews
    - coming interview
    - setting(info section) 
    - Interviews date
    - logout


### Admin:
- sign in
- create interviewer/delete/list
- users delete/list 











### Routes

#### Frontend

- Nova.com/
- **/** , Homepage, Signup/Login Modal for users.
- **/login** , Login for interviewer.
- **/'username'/dashboard** , User Dashboard, Protected
- **/'username'/profile** , User Profile Settings, Protected
- **/'username'/history** , Interview History, Protected
- **/'username'/reviews** , Interview Reviews, Protected
- **/admin/dashboard** , Admin Dashboard, Protected

#### Backend

**/api/v1/** :




1. Figma Design (Decide pages)
2. Routes.
3. Database Schema.


### Hacker Rank API
https://www.hackerrank.com/work/apidocs#!/Introduction/options_intro_api

### Codewars api
https://dev.codewars.com/#get-code-challenge




-------------------------

* Back-End
    - Login
        - POST api/login
        - POST api/admin/login
    - Signup
        - POST /api/signup
    - Interviewers Profile
    - Interviewee Profile
        - GET /api/interviewees/intervieweeId(name, image, about, )
        - POST api/interview (+ send an email)
        - GET api/interview?status
        - PATCH api/interview (+ send an email)
        - DELETE api/interview (+ send an email) 
        - GET /api/interview/review?page=?&favorite
        - PATCH /api/interview/review/interviewId (edit saved)
        - PATCH api/interviewee
        - PATCH api/interviewer
        - POST api/interviewer/schedule 
    - Landing page
        - 
    - Dashboard
        - POST /api/logout
        - GET /api/interviewers?page=&status=
        - DELETE api/interviewers/interviewerId
        - PATCH api/interviwers/interviewerId (send update status)
        - POST api/interviewers (send data)
        - GET api/interviewees?page=
        - DELETE api/interviewees/intervieweeId



* Front-End
    - Login
        - form component
        - admin login page
    - Signup
        - form component
        - update profile popup
    - Interviewers Profile
    - Interviewee Profile
        - users nav
        - user info section (without btn in interviewe profile)
        - interview component (without edit in interviewe profile)
        - review component
        - setting component 
        - profile tabs section
        - start interview form
        - add Interviwer form step 2
        - add Interviwer form step 3
        - add Interviwer form step 4 (calender)
        - add Interviwer form step 5 (info + about + about the edit or the cancel)
        - Interviewer available date section

    - Landing page
        - header component
        - Interviwers component 
        - How Nova Practicing Works component
        - We Provide section
        - Join our team section 
        - resources section
        - review about us 
        - companies section 
        - challenge section

    - Dashboard
        - Admin nav 
        - Footer
        - table
        - table section (title + table + pagination)
        - Interviwer page 
        - Interviwer form
            - add Interviwer form step 1
            - add Interviwer form step 2
            - add Interviwer form step 3
        - Interviewee page
        
        
        

Landing Page:
- [ ] resources section
- [ ] review about us
- [ ] companies section 
- [ ] challenge section
- [ ] add review from interviewer(from history)



---------------------------

Database Schema

Admin : 
          - Full Name
          - Email
          - Password
          
          
Interviewee :
            - full_name
            - email
            - password
            - about  (optional)
            - cv_url (optional)
            - img_url (optional)
            - is_verified (default: false)
            - experience
            - interviews = [
            {
             - interviewerId
             - date
             - time
             - review
             }
            ]
            
Interviewer :
            - full_name
            - email
            - password
            - about  (optional)
            - cv_url (optional)
            - img_url (optional)
            - status  ['Pending', 'Accepted', 'Rejected'] default: 'Pending'
            - experience
        


Week-1: figma + setup + database + Auth proccess(
sign up front + back
sign in front + back
user middleware + admin middleware
checkUser front (fetch user data in cookie )

fetch('/api/checkUser', check cookie + send its token )
)


- [ ] setup the project (file strucure + eslint + packages + server setup)    --Abed
- [ ] setup database  ---Mahmoud
- [ ] fake data  --Abed

- [ ] sign up back + send verify email  --Mahmoud
- [ ] verify back (update the state)
- [ ] login back POST() ---Abed
- [ ] user middleware --Manar
- [ ] admin middleware ---Manar
- [ ] checkUser route GET /api/checkUser Manar
- [ ] 
- [ ] checkUSER FRONT --Abed  /api/checkUser
- [ ] login user front --- Mahmoud
- [ ] login admin front --- Mahmoud
- [ ] Sign up front   ---Manar
- [ ] 
Week-2 interviewer profile 
Week-3 interviewee profile
Week-4 landing page 



-----------------------------

## Rules

### Work time & daily standup
- Manar
- Abed
- Mahmoud
- Raghad Mezied => `- 6 PM`

#### Daily standup
10:00

### Style Guide
- async/await, axios
- {message: , data:},
- {error: }
- TESTS
- Branch
    - [ ] every branch relates to specific issue
    - [ ] every branch linked to its issue.
    - [ ] issueNumber-feature (ex: 2-login)
    - [ ] commit changes early
    - [ ] commit should be descriptive and not too short neither too long.
    - [ ] create branch from main
    - [ ] pull main frequentally
- PR
    - [ ] while work not done open it with label `in progress`
    - [ ] when work is done change label to `awaiting review`
    - [ ] While PR approved change label to `done`, merge, close related-issue and delete branch.
    - [ ] change issue label to  `done`
    - [ ] the one whose open the PR should merge it
    - [ ] 3 approved requires to merge PR.
    - [ ] PR should have suffecient, descriptive details.
    (image of front component)
    - [ ]  git fetch `branch-name` locally, then check everything works as should it be.
    - [ ] add comments to PR, So changes will be documented, change label to `request changes`.
    - [ ] the one who request changes should resolve it.
    - [ ] pre-commit to check tests and linting.
- labels
    - awaiting-review
    - to-do
    - done
    - front
    - back
    - route 
    - in-progress
    - request changes
- files naming, variables:  camelCase
- General rules
    - all our folders should have `index.js`, every modules exported from.
    - add comments to explan complex code.
    - test every backend route. (supertest, unit test)
    - destructre your vars.

- What to do early morning
    - Review pending PR.
    - share your updates, what are you working on, time you will spend on.
    
### Our UI


### colors and fonts type
**Font:** 

**font-family:

**Colors:**

--------------------------------------
## **Issues template** :

## Backend issue:
Title should be: METHOD /full-route with labels Back, Route

### Description:
what route should do

### Protected: Yes/No

### Required middleWares:

### Request body:
```js
{
  x: 'y'
}
```
### Validation:
```js
{
  x: string.min(19)
}
```
### Response:
 - Success - status code 200
 ```js
{ 
data: [{
          id,
          name ,
          description,
          ...
      }], 
message: 
}
```
 - Failed - status code 400
```js
{ 
message: ''
}
```

### Tests:
200
400
401
    
   ---------------- 

## Front-end Issues    
    
title should be: Name of the page with labels front, Route
### Description
`description`   

* Route:	``'/'``
* Signed in only:	`false`
* Admin only:	`false`

### Screenshot:
    Screenshot from figma
    
### Component:
### Props:### Nova

- to Help developers practice and pass technical interviews with the help of our professional interviewers.
- We have developers for many specialities.

### Tempaltes:
- https://www.pramp.com/#/
- https://blog.preplaced.in/top-mock-interview-websites/
- https://www.techmockinterview.com/
- https://mockmate.com/
- https://myinterviewpractice.com/
- https://www.mymockinterview.com/
- https://www.interviewbit.com/mock-interview/
- https://www.makeuseof.com/tag/mock-interview-websites/
- https://interviewing.io/
- http://www.gainlo.co/#!/
- https://interviewbuddy.in/#App

Landing:
![](https://i.imgur.com/jJS0xjJ.png)
![](https://i.imgur.com/4iBELoy.png)
![](https://i.imgur.com/1Xxm1DQ.png)
![](https://i.imgur.com/bq2lSsD.png)
![Uploading file..._l9ugqlln5]()

color => https://mockmate.com/about/
- 
### Technologies :

- Node.js
- React
- Express
- TypeScript

## User Stories

### Homepage

- Sign up as a user()
- Log in as a interviewee/interviewer
- Log in as an admin
- Logout


### During Sign up

- Create account with personal information (Full Name, Email, Password)
- Fill up a form related to the interview I want to be asked in (Interview Experience (0 - 5)

#### 0 -> No Experience
#### 5 -> Professional


- About the user. (Input)
- CV Link (optional)
- Image Link (optional)

### Finished registering the user
 
After Sign up, before Assigning an interview.


#### Specializtion (One Option) :
- Frontend.
- Backend.
- Full Stack.
- Data Structure & Algorithm. 
- Testing Automation.
- Security.
- Dev Ops.

#### Questions (Multiple Checks):
- Technical.
- Analytical.
- Algorithms.
- System Design.

#### Language to be interviewed with (One Option):
- JavaScript
- PHP
- C++
- C#
- Java
- C
- Go
- Python
- Ruby

#### Available Slots to schedule (One Option)

- Get the Time/Date where intervieweres are available based on user inputs.
- User Can only pick one at a time.



## Users Settings

### As a User 
- Update User info.
- Schedule an interview with video chat (zoom/meet)
- Cancel, edit date (limit frame time) intreview details.
- View interviews history (general info about interview and interviewer reviews and feedback)
- Add review about user Satisfaction with the interview

### As an Interviewer
- Fill up a form related to the interview (Interview Experience, Specializtion, Categories (ex/ technical, non technical ), Available Slots to schedule)
- Update user info
- Cancel intreview details
- View interviews history
- Add review or rating after finish interview 


### As an Admin 
- Dashboard Page.
- Add Interviewer.
- Get and Delete all users.




### interviewee(user)

- Sign up
- Sign in 
- Landing page
    - about
    - interviewers
    - resourses
    - start interview
    - upcoming interviews
    - review (testimonials)
- Profile
    - history with reviews
    - coming interview
    - setting(info section) 
    - logout
    - start interview


### interviewer: 
- Sign in 
- Landing page
    - about/steps
    - interviewers
    - resourses
- Profile
    - history with reviews
    - coming interview
    - setting(info section) 
    - Interviews date
    - logout


### Admin:
- sign in
- create interviewer/delete/list
- users delete/list 











### Routes

#### Frontend

- Nova.com/
- **/** , Homepage, Signup/Login Modal for users.
- **/login** , Login for interviewer.
- **/'username'/dashboard** , User Dashboard, Protected
- **/'username'/profile** , User Profile Settings, Protected
- **/'username'/history** , Interview History, Protected
- **/'username'/reviews** , Interview Reviews, Protected
- **/admin/dashboard** , Admin Dashboard, Protected

#### Backend

**/api/v1/** :




1. Figma Design (Decide pages)
2. Routes.
3. Database Schema.


### Hacker Rank API
https://www.hackerrank.com/work/apidocs#!/Introduction/options_intro_api

### Codewars api
https://dev.codewars.com/#get-code-challenge




-------------------------

* Back-End
    - Login
        - POST api/login
        - POST api/admin/login
    - Signup
        - POST /api/signup
    - Interviewers Profile
    - Interviewee Profile
        - GET /api/interviewees/intervieweeId(name, image, about, )
        - POST api/interview (+ send an email)
        - GET api/interview?status
        - PATCH api/interview (+ send an email)
        - DELETE api/interview (+ send an email) 
        - GET /api/interview/review?page=?&favorite
        - PATCH /api/interview/review/interviewId (edit saved)
        - PATCH api/interviewee
        - PATCH api/interviewer
        - POST api/interviewer/schedule 
    - Landing page
        - 
    - Dashboard
        - POST /api/logout
        - GET /api/interviewers?page=&status=
        - DELETE api/interviewers/interviewerId
        - PATCH api/interviwers/interviewerId (send update status)
        - POST api/interviewers (send data)
        - GET api/interviewees?page=
        - DELETE api/interviewees/intervieweeId



* Front-End
    - Login
        - form component
        - admin login page
    - Signup
        - form component
        - update profile popup
    - Interviewers Profile
    - Interviewee Profile
        - users nav
        - user info section (without btn in interviewe profile)
        - interview component (without edit in interviewe profile)
        - review component
        - setting component 
        - profile tabs section
        - start interview form
        - add Interviwer form step 2
        - add Interviwer form step 3
        - add Interviwer form step 4 (calender)
        - add Interviwer form step 5 (info + about + about the edit or the cancel)
        - Interviewer available date section

    - Landing page
        - header component
        - Interviwers component 
        - How Nova Practicing Works component
        - We Provide section
        - Join our team section 
        - resources section
        - review about us 
        - companies section 
        - challenge section

    - Dashboard
        - Admin nav 
        - Footer
        - table
        - table section (title + table + pagination)
        - Interviwer page 
        - Interviwer form
            - add Interviwer form step 1
            - add Interviwer form step 2
            - add Interviwer form step 3
        - Interviewee page
        
        
        

Landing Page:
- [ ] resources section
- [ ] review about us
- [ ] companies section 
- [ ] challenge section
- [ ] add review from interviewer(from history)



---------------------------

Database Schema

Admin : 
          - Full Name
          - Email
          - Password
          
          
Interviewee :
            - full_name
            - email
            - password
            - about  (optional)
            - cv_url (optional)
            - img_url (optional)
            - is_verified (default: false)
            - experience
            - interviews = [
            {
             - interviewerId
             - date
             - time
             - review
             }
            ]
            
Interviewer :
            - full_name
            - email
            - password
            - about  (optional)
            - cv_url (optional)
            - img_url (optional)
            - status  ['Pending', 'Accepted', 'Rejected'] default: 'Pending'
            - experience
        


Week-1: figma + setup + database + Auth proccess(
sign up front + back
sign in front + back
user middleware + admin middleware
checkUser front (fetch user data in cookie )

fetch('/api/checkUser', check cookie + send its token )
)


- [ ] setup the project (file strucure + eslint + packages + server setup)    --Abed
- [ ] setup database  ---Mahmoud
- [ ] fake data  --Abed

- [ ] sign up back + send verify email  --Mahmoud
- [ ] verify back (update the state)
- [ ] login back POST() ---Abed
- [ ] user middleware --Manar
- [ ] admin middleware ---Manar
- [ ] checkUser route GET /api/checkUser Manar
- [ ] 
- [ ] checkUSER FRONT --Abed  /api/checkUser
- [ ] login user front --- Mahmoud
- [ ] login admin front --- Mahmoud
- [ ] Sign up front   ---Manar
- [ ] 
Week-2 interviewer profile 
Week-3 interviewee profile
Week-4 landing page 



-----------------------------

## Rules

### Work time & daily standup
- Manar
- Abed
- Mahmoud
- Raghad Mezied => `- 6 PM`

#### Daily standup
10:00

### Style Guide
- async/await, axios
- {message: , data:},
- {error: }
- TESTS
- Branch
    - [ ] every branch relates to specific issue
    - [ ] every branch linked to its issue.
    - [ ] issueNumber-feature (ex: 2-login)
    - [ ] commit changes early
    - [ ] commit should be descriptive and not too short neither too long.
    - [ ] create branch from main
    - [ ] pull main frequentally
- PR
    - [ ] while work not done open it with label `in progress`
    - [ ] when work is done change label to `awaiting review`
    - [ ] While PR approved change label to `done`, merge, close related-issue and delete branch.
    - [ ] change issue label to  `done`
    - [ ] the one whose open the PR should merge it
    - [ ] 3 approved requires to merge PR.
    - [ ] PR should have suffecient, descriptive details.
    (image of front component)
    - [ ]  git fetch `branch-name` locally, then check everything works as should it be.
    - [ ] add comments to PR, So changes will be documented, change label to `request changes`.
    - [ ] the one who request changes should resolve it.
    - [ ] pre-commit to check tests and linting.
- labels
    - awaiting-review
    - to-do
    - done
    - front
    - back
    - route 
    - in-progress
    - request changes
- files naming, variables:  camelCase
- General rules
    - all our folders should have `index.js`, every modules exported from.
    - add comments to explan complex code.
    - test every backend route. (supertest, unit test)
    - destructre your vars.

- What to do early morning
    - Review pending PR.
    - share your updates, what are you working on, time you will spend on.
    
### Our UI


### colors and fonts type
**Font:** 

**font-family:

**Colors:**

--------------------------------------
## **Issues template** :

## Backend issue:
Title should be: METHOD /full-route with labels Back, Route

### Description:
what route should do

### Protected: Yes/No

### Required middleWares:

### Request body:
```js
{
  x: 'y'
}
```
### Validation:
```js
{
  x: string.min(19)
}
```
### Response:
 - Success - status code 200
 ```js
{ 
data: [{
          id,
          name ,
          description,
          ...
      }], 
message: 
}
```
 - Failed - status code 400
```js
{ 
message: ''
}
```

### Tests:
200
400
401
    
   ---------------- 

## Front-end Issues    
    
title should be: Name of the page with labels front, Route
### Description
`description`   

* Route:	``'/'``
* Signed in only:	`false`
* Admin only:	`false`

### Screenshot:
    Screenshot from figma
    
### Component:
### Props: