# Cantileverlabs Nodejs Backend API Documentation. ## Project Structure : ``` /root |- controllers | |-- admin.js | |-- auth.js | |-- blog.js | |-- coupon.js | |-- course.js | |-- payment.js | |-- profile.js | |-- query.js | |- middlewares | |-- isAdmin.js | |-- requireLogin.js | |- models | |-- Blog.js | |-- Coupon.js | |-- Course.js | |-- CourseType.js | |-- Order.js | |-- query.js | |-- Student.js | |-- User.js | |- routes | |-- admin.js | |-- auth.js | |-- blog.js | |-- Coupon.js | |-- course.js | |-- payment.js | |-- profile.js | |-- query.js | |- app.js ``` ### App will listen on the port `http://localhost:5000` # Routes Functions and Body Parameters. ## File :- Admin.js ``` Route : /addSchedule Method: POST Requirements : |-- isAuth |-- isAdmin Route : /editSchedule Method: POST Requirements : |-- isAuth |-- isAdmin Route : /deleteSchedule Method: POST Requirements : |-- isAuth |-- isAdmin ``` ## File :- Auth.js ### Note: `All the Body Params are as it is` ``` Route : /protected Method: GET Requirements : |-- isAuth Route : /signup Method: POST Body Params :- firstName - lastName - email *must* - password *must* ---------- for sending the Verification Emial to user. - sending_company_email - subject Response : { message:"You are Registered, Please Login" } Response if email verification: { message:"Email sent with 6 Digit OTP , Check your Email" } Route : /verifyemail Method: POST Body Params: - otp Route : /signin Method: POST Body Params : - email - password Route : /sendotp Method: POST Body Params : phoneNumber , _id Respone : {_id} _id is the user id that just signedup . Route : /getotp Method: POST Body Params : id , otp Response : {message:"Code Verified"} Route : /forgotpassword Method: POST Body Params : email,link,sending_company_email,subject. { - email of the user. } { - link is where to send the user for resetting a password. } { - sending_company_email is email address of the comapny to send the email to the user. } { - subject is email subject } Route : /resetpassword/:_id/:token Method: POST Headers Params : _id, token Body Params : password Response : {message:"Password Updated!"} ``` ## File :- BLog.js ``` Route : /addBlog Method: POST Body Params : _id , title , body , author , image String : { _id : Database _id of a person who is adding up a blog} String : { title : title of the blog} String: { body : body of the blog} String: image of the blog to be added} String : Author of the blog} Route : /getAllBlogs Method: GET Body Params : none Route : /deleteBlog Method: POST Body Params : _id * must * { _id : _id is a id of the blog to delete.} Route : /editBlog Method: POST Body Params : _id * must * , body , title , image. String : { _id : Database _id of a person who is adding up a blog} String : { title : title of the blog} String: { body : body of the blog} String: image of the blog to be added} ``` ## File :- Coupon.js ``` Route : /set-coupon Method: POST Body Params : percentage , coupon_code , remainingTimes String : { couponCode : Coupon code of the coupon} String: { percentage: Discount percentage of the coupon} String: { numAllowed : No of times the coupon is allwoed} Route : /getAllCoupons Method: GET Body Params : none Route : /deleteCoupon Method: POST Requirements : isAdmin, isAuth Body Params : couponCode * must * { couponCode : coupon code of the coupon } Route : /addCoupon Method: POST Requirements : isAdmin, isAuth Body Params : couponCode * must * , percentage , numAllowed String : { couponCode : Coupon code of the coupon} String: { percentage: Discount percentage of the coupon} String: { numAllowed : No of times the coupon is allwoed} ``` ## File Course.js ``` Route : /addCourse Method : POST Requirements : isAdmin , isAuth Body Params : name , mentor , totalLectures , route Route : /getAllCourse Method : GET Requirements : None Body Params : None Route : /getSingleParCourse Method : POST Body Params : parCourseId Route : /getMeetSchedule Method : POST Requiremnents : isAuth Body Params : courseId Route : /getFromRoute Method : GET Requirements : None Query Params : route Route : /addClick Method : POST Requiremnts : isAuth Body Params : route , userId ``` ## File Payments.js ``` Route : /verification Method : POST Requirements : None Body Params : Route : /razorpay Method : POST Requirements : requireLogin Body Params : courseId , couponCode ``` ## File Profle.js ``` Route : getProfile Method : GET Requirements : requireLogin Body Params : _id of the User. Route : postProfile Method : POST Requirements : requireLogin Body Params : _id , interests , projects , yearofgrad , phoneNumber , institute , skills Route : deleteUser Method : POST Requirements : requireLogin Body Params : _id {_id : _id of the User to delete the Profile} Route : editUser Method : POST Requirements : requireLogin Body Params : _id , newFirstName , newLastName ,email {_id : _id of the user to edit the profile} {newFirstName : New Name } {newLastName : New last name} {email : if email has to be changed} ``` ## File Query.js ``` Route : addQuery Method : POST Requirements : None Body Params : fullName , phoneNumber , email , query , other , graduationYear Route : getAllQueries Method : GET Requirements : None Body Params : None Route : getOtherQueries Method : GET Requirements : None Body Params : None Route : getTypeQueries Method : POST Requirements : None Body Params : type