Commit e7f90597 authored by Hasitha Samarasekara's avatar Hasitha Samarasekara

Optimize the home page

parent 77c08e17
......@@ -5,7 +5,7 @@ const Schema = mongoose.Schema;
const ClassStudentSchema = new Schema({
class_id:{type:mongoose.Schema.Types.ObjectId,ref: 'Classes'},
student_id:{type:mongoose.Schema.Types.ObjectId,ref: 'student'},
tutor_id:{type:mongoose.Schema.Types.ObjectId,ref: 'tutor'},
},{
timestamps:true,
});
......
......@@ -7,12 +7,6 @@ const ALResultsSchema = new Schema({
year:{type:String,required:false},
stream: {type:String,required:true},
Subjects : {type:Object},
subject01:{type:String,required:true},
subject02:{type:String,required:true},
subject03:{type:String,required:true},
subject01Result:{type:String,required:true},
subject02Result:{type:String,required:true},
subject03Result:{type:String,required:true},
generalEnglish:{type:String},
commonGeneralTest:{type:String},
image:{type:String},
......
......@@ -19,6 +19,7 @@ const userSchema = new Schema({
tutor_main_city:[{type:String}],
tutor_medium:{type:String},
tutor_qualification:{type:String},
tutor_student_count:{type:Number},
tutor_instituteIDList:[{type:mongoose.Schema.Types.ObjectId,ref: 'institute'}],
}, {
timestamps:true,
......
......@@ -104,6 +104,7 @@ router.route('/studentList/update').post((req, res) => {
const class_id = req.body._id;
const student_nic = req.body.student_nic;
const tutor_id = req.body.tutor_id;
console.log("classID: " + class_id);
console.log("student_nic: " + student_nic);
......@@ -126,7 +127,7 @@ router.route('/studentList/update').post((req, res) => {
const newClassStudent = new studentList({
class_id,
student_id,
tutor_id
});
newClassStudent.save().then(result =>{
......
const router = require('express').Router();
let tutor = require('../models/tutor.user.model');
let tutorRating = require('../models/TutorRatingAndReviews.model');
let tutorClasses = require('../models/createClass.model');
let ALResults = require('../models/studentALResult.model');
let classStudentList = require('../models/ClassStudentList.model');
const axios = require('axios');
const request = require('request');
......@@ -26,9 +29,34 @@ router.route('/getFilteredList').post((req, res) => {
tutors.reduce(async (promise, tutor, idx) => {
await promise;
await tutorRating.find({"tutor_id": tutor._id}).then((reviews) => {
let classCount = 0;
let studentCount = 0;
await tutorRating.find({"tutor_id": tutor._id}).then(async (reviews) => {
//console.log("i : " + JSON.stringify(reviews));
await tutorClasses.find({"tutor_id": tutor._id}).then(async (tutorOneClass) =>{
classCount = tutorOneClass.length;
console.log("Class Count : " + classCount);
// let oneClassCount = 0
//
// if(tutorOneClass.length > 0){
// tutorOneClass.reduce(async (promise, tutorOneCl, idx2) =>{
// await promise;
// await classStudentList.find({"class_id": tutorOneCl._id}).then( async (stdCount)=>{
// oneClassCount = oneClassCount + stdCount.length;
//
// if(idx2 === stdCount.length - 1){
// studentCount = oneClassCount;
// }
//
// })
// }, Promise.resolve())
// }
})
console.log("idx : " + idx);
// console.log("tutor : " + tutors);
const teacherReview = {
......@@ -49,7 +77,9 @@ router.route('/getFilteredList').post((req, res) => {
"tutor_main_city": tutor.tutor_main_city,
"tutor_medium": tutor.tutor_medium,
"tutor_registered_date": tutor.createdAt,
"tutor_class_count": classCount,
"tutor_qualification": tutor.tutor_qualification,
"tutor_student_count": tutor.tutor_student_count,
"review": reviews.map(review => review.review),
"ratings": reviews.map(review => review.rating)
}
......@@ -100,6 +130,8 @@ router.route('/getFilteredList').post((req, res) => {
"tutor_medium": teacherReview.tutor_medium,
"tutor_qualification": teacherReview.tutor_qualification,
"tutor_registered_date": teacherReview.tutor_registered_date,
"tutor_class_count": teacherReview.tutor_class_count,
"tutor_student_count": teacherReview.tutor_student_count,
"tutor_reviewValue": response.data.result,
"tutor_avg_rating" : Number(TotalRating/teacherReview.ratings.length),
"tutor_review_count" : teacherReview.review.length
......@@ -132,6 +164,8 @@ router.route('/getFilteredList').post((req, res) => {
"tutor_main_district": teacherReview.tutor_main_district,
"tutor_main_city": teacherReview.tutor_main_city,
"tutor_registered_date": teacherReview.tutor_registered_date,
"tutor_class_count": teacherReview.tutor_class_count,
"tutor_student_count": teacherReview.tutor_student_count,
"tutor_medium": teacherReview.tutor_medium,
"tutor_qualification": teacherReview.tutor_qualification,
"tutor_reviewValue": 0,
......@@ -164,4 +198,5 @@ router.route('/getFilteredList').post((req, res) => {
});
module.exports = router;
\ No newline at end of file
......@@ -14,12 +14,12 @@ router.route('/add').post(async(req,res) =>{
const year = req.body.year;
const stream = req.body.stream;
const Subjects = req.body.Subjects;
const subject01 = req.body.subject01;
const subject02 = req.body.subject02;
const subject03 = req.body.subject03;
const subject01Result = req.body.subject01Result;
const subject02Result = req.body.subject02Result;
const subject03Result = req.body.subject03Result;
// const subject01 = req.body.subject01;
// const subject02 = req.body.subject02;
// const subject03 = req.body.subject03;
// const subject01Result = req.body.subject01Result;
// const subject02Result = req.body.subject02Result;
// const subject03Result = req.body.subject03Result;
const generalEnglish = req.body.generalEnglish;
const commonGeneralTest = req.body.commonGeneralTest;
const image = req.body.image;
......@@ -29,12 +29,12 @@ router.route('/add').post(async(req,res) =>{
year,
stream,
Subjects,
subject01,
subject02,
subject03,
subject01Result,
subject02Result,
subject03Result,
// subject01,
// subject02,
// subject03,
// subject01Result,
// subject02Result,
// subject03Result,
generalEnglish,
commonGeneralTest,
image,
......@@ -56,12 +56,12 @@ router.route('/add').post(async(req,res) =>{
else {
details.year = year;
details.stream = stream;
details.subject01 = subject01;
details.subject02 = subject02;
details.subject03 = subject03;
details.subject01Result = subject01Result;
details.subject02Result = subject02Result;
details.subject03Result = subject03Result;
// details.subject01 = subject01;
// details.subject02 = subject02;
// details.subject03 = subject03;
// details.subject01Result = subject01Result;
// details.subject02Result = subject02Result;
// details.subject03Result = subject03Result;
details.generalEnglish = generalEnglish;
details.commonGeneralTest = commonGeneralTest;
details.image = image;
......
......@@ -75,6 +75,7 @@ router.route('/add').post(async(req,res) =>{
const tutor_main_city = req.body.tutor_main_city;
const tutor_medium = req.body.tutor_medium;
const tutor_qualification = req.body.tutor_qualification;
const tutor_student_count = 0;
let instituteObjectIDList = [];
......@@ -107,7 +108,8 @@ router.route('/add').post(async(req,res) =>{
tutor_main_city,
tutor_medium,
tutor_instituteIDList,
tutor_qualification
tutor_qualification,
tutor_student_count
});
newTutor.save()
.then(tutor => {
......
......@@ -46,4 +46,4 @@ app.use('/createClass', createClassRoute);
app.listen(port, () => {
console.log(`Server is running on Port: ${port}`);
});
\ No newline at end of file
});
......@@ -10,6 +10,7 @@
"bootstrap-icons": "^1.5.0",
"moment": "^2.29.1",
"react": "^17.0.2",
"react-bootstrap": "^2.0.2",
"react-bootstrap-icons": "^1.5.0",
"react-dom": "^17.0.2",
"react-dropdown": "^1.9.2",
......
......@@ -10,7 +10,7 @@ export default class StudentRequestForClass extends Component{
super(props);
this.state = {
tutorID:'6127b1d7ed4ff23bb0344538',
tutorID:'',
instituteList: [],
ClassMethods : [],
subjectList : [],
......@@ -130,7 +130,8 @@ export default class StudentRequestForClass extends Component{
if(this.state.labelClassID !== ""){
const payload = {
_id : this.state.labelClassID,
student_nic : this.state.typedNIC
student_nic : this.state.typedNIC,
tutor_id : this.state.tutorID
}
axios.post(configs.BASE_URL + '/createClass/studentList/update', payload)
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment