- deployment on heroku link: https://clientbrogrammer.herokuapp.com/
- dynamic form examples are in server/uploads
-
/api/investors/register
- POST
//=> investor register (creating an account)
- !name: string().min(3)
- !type: string().length(3)
- !gender: string().valid('male', 'female')
- !nationality: string().max(25)
- !idType: string().valid('Passport', 'National ID')
- !idNumber: String()
- !dob: date()
- !address: string()
- !telephone: number()
- fax: number()
- !mail: string()
- !password: string()
- POST
-
/routes/api/admins/register
- POST
//=> admin register (must be done by another admin)
- !name: string()
- !gender: string().valid('male', 'female')
- !birthDate: string()
- !phone: number()
- !email: string()
- !password: string().min(8).max(20)
- joinDate: string()
- POST
-
/api/lawyer/register
- POST
//=> lawyer register (must be done by admin)
- !firstName: string().min(1)
- !middleName: string().min(1)
- !lastName: string().min(1)
- !email: string().email()
- !password: string().min(8)
- !mobileNumber: string().min(6)
- !socialSecurityNumber: string().min(14).max(14),
- !salary: number(),
- !birthDate: date(),
- !yearsOfExperience: number()
- POST
-
/api/reviewer/register
- POST
//=> reviewer register (must be done by admin)
- !ssn: number()
- !name: string()
- !gender: string()
- !address: string()
- !phone: number()
- !email: string()
- !password: string()
- !yearsOfExperience: number()
- !age: number()
- !birth: string()
- !task: number()
- POST
-
/routes/api/admins/login
- POST
//=> admin login
- email: string()
- password: string()
- POST
-
/api/lawyer/login
- POST
//=> lawyer login
- email: string()
- password: string()
- POST
-
/api/reviewer/login
- POST
//=> reviewer login
- email: string()
- password: string()
- POST
-
/api/lawyer/editForm/:id
- GET
//=> views rejected fourms submitted by this lawyer
- GET
-
/api/lawyer/editForm/:id/:companyId
- PUT
//=> lawyer can update a certain companies fourm after it was rejected by a reviewer
- nameInArabic: string()
- nameInEnglish: string()
- governerateHQ: string()
- cityHQ: string()
- addressHQ: string()
- telephoneHQ: number()
- faxHQ: number()
- capitalCurrency: string()
- capital: number().min(50000)
- investorName: string()
- investorType: string()
- investorSex: string()
- investorNationality: string()
- investorIdentificationType: string()
- investorIdentificationNumber: string()
- investorBD: date()
- investorAddress: string()
- investorTelephone: string()
- investorFax: string()
- investorEmail: string()
- managers: array()
- lawyerComment: string()
- lawyer: string()
- status: string()
- PUT
-
/api/investors/login
- POST
//=> investor login
- !email : string()
- !password : string()
- !email : string()
- POST
-
/api/lawyer/mycases/:id
- GET
//=> get all the cases that was assigned to the lawyer
- GET
-
/api/reviewer/mycases/:id
- GET
//=> get all the cases that was assigned to the Reviewer
- GET
-
/api/investors/register
- POST
//=> Create an Investor
- !name : string()
- !type : string()
- !gender : string()
- !nationality : string()
- !idType : string()
- !idNumber : string()
- !dob : date()
- !address : string()
- !telephone : string()
- !fax : string()
- !mail : string()
- !password : string()
- POST
-
/api/lawyer/:id/getTasks
- GET
//=> gets specific tasks of a certain lawyer by his id
- GET
-
/api/lawyer/getAllTasks/view
- GET
//=> //Gets all the tasks that are free for any lawyer to choose from
- GET
-
/api/lawyer/:id/assignFreeTask/:id2
- PUT
//=> Lawyer Chooses one task at a time and assigns it to himself/herself
- PUT
-
/api/lawyer/:id/getTasks/approve/:id2
- PUT
//=> Lawyer Approves the task and updates the company status
- PUT
-
/api/lawyer/:id/getTasks/disapprove/:id2
- PUT
//=> LawyerDisapproves the task and updates company status
- PUT
-
/api/reviewer/:id/getTasks
- GET
//=> gets specific tasks of a certain Reviewer by his id
- GET
-
/api/reviewer/getAllTasks/view
- GET
//=> //Gets all the tasks that are free for any Reviewer to choose from
- GET
-
/api/reviewer/:id/assignFreeTask/:id2
- PUT
//=> Reviewer Chooses one task at a time and assigns it to himself/herself
- PUT
-
/api/reviewer/:id/getTasks/approve/:id2
- PUT
//=> Reviewer Approves the task and updates the company status
- PUT
-
/api/reviewer/:id/getTasks/disapprove/:id2
- PUT
//=> Reviewer Disapproves the task and updates company status
- PUT
-
/api/reviewer/addcomment/:id/:companyId
- PUT
//=> Reviewer adds a comment to the application so that the assigned lawyer can update them
- reviewerComment: string()
- PUT
-
/api/lawyer/addcomment/:id/:companyId
- PUT
//=> Lawyer adds a comment to the application so that he would notify the investor by them
- lawyerComment: string()
- PUT
-
/api/investors/:id/MyRequests/
- GET
//=> View my Requests details
- GET
-
/api/investors/:id/MyRequests/:companyid/
- GET
//=> View a case Details
- GET
-
/api/investors/:id/MyRequests/:companyid/
- PUT
//=> Update Company form after being rejected by lawyer
- nameInArabic: string()
- nameInEnglish: string()
- governerateHQ: string()
- cityHQ: string()
- addressHQ: string()
- telephoneHQ: number()
- faxHQ: number()
- capitalCurrency: string()
- capital: number().min(50000)
- investorName: string()
- investorType: string()
- investorSex: string()
- investorNationality: string()
- investorIdentificationType: string()
- investorIdentificationNumber: string()
- investorBD: date()
- investorAddress: string()
- investorTelephone: string()
- investorFax: string()
- investorEmail: string()
- managers: array()
- lawyerComment: string()
- lawyer: string()
- status: string()
- PUT
-
/routes/api/admins/
- GET
=> View all admins (accessible for logged in users)
- PUT
=> Edit currently logged in admin's information
- email: string()
- phone: number()
- password: string().min(8).max(20)
- gender: string().valid('Male', 'Female')
- DELETE
=> Delete currently logged in admin
- GET
-
/routes/api/admins/:id
- GET
=> View a specific admin (accessible for logged in users)
- DELETE
=> Delete a specific admin (only possible through another admin)
- GET
-
/api/investors/
- GET
=> View all investors (accessible for logged in users)
- PUT
=> Edit currently logged in investor's information
- !name: string().min(3)
- type: string().length(3)
- gender: string().valid('male', 'female')
- nationality: string().max(25)
- idType: string().valid('Passport', 'National ID')
- idNumber: number()
- dob: date()
- address: string()
- telephone: number()
- fax: number()
- mail: string()
- password: string()
- DELETE
=> Delete currently logged in investor
- GET
-
/api/investors/:id
- GET
=> View a specific admin (accessible for logged in users)
- DELETE
=> Delete a specific investor (only possible through admin)
- GET
-
/api/investors/View/ViewCompanies
- GET
=> View established and unestablished companies of currently logged in investor
- GET
-
/api/lawyer/
-
GET
=> View all lawyers (accessible for logged in users)
-
PUT
=> Edit information of currently logged in lawyer
- firstName: string().min(1)
- middleName: string().min(1)
- lastName: string().min(1)
- email: string().email()
- password: string().min(8)
- mobile_number: string().min(6)
- Social_Security_Number: string().min(14).max(14)
- salary: number()
- birth_Date: date()
- yearsOfExperience = number()
-
DELETE
=> Delete currently logged in lawyer
-
-
/api/lawyer/:id
- GET
=> Get a specific lawyer (accessible for logged in users)
- DELETE
=> Delete a specific lawyer (only accessible through admins)
- GET
-
/api/reviewer/
- GET
=> View all reviewers (accessible for logged in users)
- PUT
=> Edit information of currently logged in reviewer
- ssn: string()
- name: string()
- gender: string()
- address: string()
- phone: number()
- email: string()
- password: string()
- yearsOfExperience: number()
- age: number()
- birth: string()
- DELETE
=> Delete currently logged in reviewer
- GET
-
/api/reviewer/:id
- GET
=> Get a specific reviewer (accessible for logged in users)
- DELETE
=> Delete a specific reviewer (only accessible through admins)
- GET
-
/api/investors/:id/:companyID/viewFees
- GET
//=> an investor can view the estimated fees of creating a company after he submits a form
- GET
-
/api/lawyer//:id/:companyID/viewFees
- GET
//=> a lawyer can view the estimated fees of creating a company after he submits a form for an investor
- GET
-
/api/lawyer/resubmit/:id/:companyId
- GET
//=> a lawyer can resubmit disaproved forms after updating them according to the reviewer's guidelines
- GET
-
/api/routes/admins/getall/cases
- GET
=> Get all company cases (accessible for admins)
- GET
-
/api/lawyer/getall/cases
- GET
=> Get all company cases (accessible for lawyer)
- GET
-
/api/reviewer/getall/cases
- GET
=> Get all company cases (accessible for reviewer)
- GET
-
/api/investors/createssccompany
- PUT
//=> Create a new ssc company form as an investor (only accessible for investors)
- regulationLaw: string()
- legalCompanyForm: string()
- nameInArabic: string()
- nameInEnglish: string()
- governerateHQ: string()
- cityHQ: string()
- addressHQ: string()
- telephoneHQ: number()
- faxHQ: number()
- capitalCurrency: string()
- capital: number().min(50000)
- managers: array()
- PUT
-
/api/investors/createspccompany
- PUT
//=> create a new spc Company form as an investor (only accessible for investors)
- regulationLaw: string()
- legalCompanyForm: string()
- nameInArabic: string()
- nameInEnglish: string()
- governerateHQ: string()
- cityHQ: string()
- addressHQ: string()
- telephoneHQ: number()
- faxHQ: number()
- capitalCurrency: string()
- capital: number().min(50000)
- PUT
-
/api/lawyer/lawyerinvestor/createspccompany
- PUT
//=> Create a new spc Company form as a lawyer for an investor (only accessible for lawyers)
- regulationLaw: string()
- legalCompanyForm: string()
- nameInArabic: string()
- nameInEnglish: string()
- governerateHQ: string()
- cityHQ: string()
- addressHQ: string()
- telephoneHQ: number()
- faxHQ: number()
- capitalCurrency: string()
- capital: number().min(50000)
- investorName: string()
- investorSex: string()
- investorNationality: string()
- investorIdentificationType: string()
- investorIdentificationNumber: string()
- investorBD: date()
- investorAddress: string()
- investorTelephone: string()
- investorFax: string()
- investorEmail: string()
- PUT
-
/api/lawyer/lawyerinvestor/createssccompany
- PUT
//=> Create a new ssc Company as a lawyer for an investor (only accessible for lawyers)
- regulationLaw: string()
- legalCompanyForm: string()
- nameInArabic: string()
- nameInEnglish: string()
- governerateHQ: string()
- cityHQ: string()
- addressHQ: string()
- telephoneHQ: number()
- faxHQ: number()
- capitalCurrency: string()
- capital: number().min(50000)
- investorName: string()
- investorType: string()
- investorSex: string()
- investorNationality: string()
- investorIdentificationType: string()
- investorIdentificationNumber: string()
- investorBD: date()
- investorAddress: string()
- investorTelephone: string()
- investorFax: string()
- investorEmail: string()
- managers: array()
- PUT
-
/api/company/approved
- GET
//=> Registered on Unregistered Users view all the 'Accepted' companies
- GET