Commit 6e5c87ee authored by Hasitha Samarasekara's avatar Hasitha Samarasekara

Home page Filters added ann create class UI change,

Connect flak api
parent 828e015e
const mongoose = require('mongoose');
const Schema = mongoose.Schema;
const TutorRatingSchema = new Schema({
tutor_id:{type:mongoose.Schema.Types.ObjectId,ref: 'Post'},
student_id:{type:mongoose.Schema.Types.ObjectId,ref: 'Post'},
rating: {type:String},
review:{type:String},
version:{type:String},
}, {
timestamps:true,
});
const TutorRatings = mongoose.model('TutorRatings',TutorRatingSchema);
module.exports = TutorRatings;
\ No newline at end of file
......@@ -3,9 +3,10 @@ const mongoose = require('mongoose');
const Schema = mongoose.Schema;
const ALResultsSchema = new Schema({
student_id:{type:mongoose.Schema.Types.ObjectId,ref: 'Post'},
student_id:{type:mongoose.Schema.Types.ObjectId,ref: 'students'},
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},
......
......@@ -19,11 +19,11 @@ const userSchema = new Schema({
tutor_main_city:[{type:String}],
tutor_medium:{type:String},
tutor_qualification:{type:String},
tutor_instituteIDList:[{type:mongoose.Schema.Types.ObjectId,ref: 'Post'}],
tutor_instituteIDList:[{type:mongoose.Schema.Types.ObjectId,ref: 'institute'}],
}, {
timestamps:true,
});
//const institute = mongoose.model('institute',userSchema);
const User = mongoose.model('tutor',userSchema);
module.exports = User;
\ No newline at end of file
This diff is collapsed.
......@@ -16,6 +16,7 @@
"mongoose": "^5.12.15"
},
"devDependencies": {
"nodemailer": "^6.6.2"
"nodemailer": "^6.6.2",
"request": "^2.88.2"
}
}
const router = require('express').Router();
let tutor = require('../models/tutor.user.model');
let tutorRating = require('../models/TutorRatingAndReviews.model');
const mongoose = require("mongoose");
const express = require('express')
const request = require('request');
router.route('/getFilteredList').post((req,res) =>{
let tutorReviewResults = [];
tutor.find({
"tutor_Stream" : {'$regex': req.body.selectedStream, '$options': 'i'},
"tutor_subjects" : {'$regex': req.body.selectedSubject, '$options': 'i'},
"tutor_main_district" : {'$regex': req.body.selectedDistrict, '$options': 'i'},
"tutor_main_city" : {'$regex': req.body.selectedCity, '$options': 'i'},
"tutor_medium" : {'$regex': req.body.selectedLanguage, '$options': 'i'},
"tutor_class_type" : {'$regex': req.body.selectedClassType, '$options': 'i'},
})
.then(async tutors => {
// async function getTutorData(tutor) {
// for (let i = 0; i < tutor.length; i++) {
// // var docregistrationnumber = arr[i].docregistrationnumber
// // var registrationAuthority = arr[i].docregistrationauthority
// // var data = await doctorData.getDoctorByRegNumber(docregistrationnumber, registrationAuthority);
// tutorRating.find(()=>{
// tutor_id : tutor._id
// })
// .then(reviews => {
// let reviewsList = [];
//
// reviewsList = await Get
// for (const oneReview of reviews){
// reviewsList.push(oneReview.review);
// //console.log("oneReview review");
// //console.log(oneReview.review);
// }
// console.log("Reviews : " + reviewsList)
//
//
// let options = {
// uri: 'http://localhost:5000/review_prediction_for_tutor',
// body: JSON.stringify(reviewsList),
// method: 'POST',
// headers: {
// 'Content-Type': 'application/json'
// }
// }
// request(options, function (error, response) {
// // console.log(error, response.body);
// //tutor.tutor_main_district = "Test";
// //tutorReviewResults.tutor_reviewValue = response.body;
// let payload = {
// "tutor_id" : tutor._id,
// "tutor_name" : tutor.tutor_name,
// "tutor_nic" : tutor.tutor_nic,
// "tutor_email" : tutor.tutor_email,
// "tutor_phone" : tutor.tutor_phone,
// "tutor_address" : tutor.tutor_address,
// "tutor_password" : tutor.tutor_password,
// "tutor_gender" : tutor.tutor_gender,
// "tutor_status" : tutor.tutor_status,
// "tutor_image" : tutor.tutor_image,
// "tutor_Stream" : tutor.tutor_Stream,
// "tutor_subjects" : tutor.tutor_subjects,
// "tutor_class_type" : tutor.tutor_class_type,
// "tutor_main_district" : tutor.tutor_main_district,
// "tutor_main_city" : tutor.tutor_main_city,
// "tutor_medium" : tutor.tutor_medium,
// "tutor_qualification" : tutor.tutor_qualification,
// "tutor_reviewValue" : JSON.parse(response.body).result,
//
// };
// tutorReviewResults.push(payload);
// console.log(tutorReviewResults.length)
// });
// reviewsList = [];
// })
//
// arra.push(data);
// }
//
// return arra;
// }
let reviewFinalResults = []
for (let tutor of tutors){
tutorRating.find(()=>{
tutor_id : tutor._id
})
.then(reviews => {
let reviewsList = [];
for (const oneReview of reviews){
reviewsList.push(oneReview.review);
//console.log("oneReview review");
//console.log(oneReview.review);
}
console.log("Reviews : " + reviewsList)
let options = {
uri: 'http://localhost:5000/review_prediction_for_tutor',
body: JSON.stringify(reviewsList),
method: 'POST',
headers: {
'Content-Type': 'application/json'
}
}
request(options, function (error, response) {
// console.log(error, response.body);
//tutor.tutor_main_district = "Test";
//tutorReviewResults.tutor_reviewValue = response.body;
let payload = {
"tutor_id" : tutor._id,
"tutor_name" : tutor.tutor_name,
"tutor_nic" : tutor.tutor_nic,
"tutor_email" : tutor.tutor_email,
"tutor_phone" : tutor.tutor_phone,
"tutor_address" : tutor.tutor_address,
"tutor_password" : tutor.tutor_password,
"tutor_gender" : tutor.tutor_gender,
"tutor_status" : tutor.tutor_status,
"tutor_image" : tutor.tutor_image,
"tutor_Stream" : tutor.tutor_Stream,
"tutor_subjects" : tutor.tutor_subjects,
"tutor_class_type" : tutor.tutor_class_type,
"tutor_main_district" : tutor.tutor_main_district,
"tutor_main_city" : tutor.tutor_main_city,
"tutor_medium" : tutor.tutor_medium,
"tutor_qualification" : tutor.tutor_qualification,
"tutor_reviewValue" : JSON.parse(response.body).result,
};
tutorReviewResults.push(payload);
console.log(tutorReviewResults.length)
});
reviewsList = [];
})
// console.log(reviewFinalResults)
}
console.log("Last " +tutorReviewResults.length)
//res.json(tutorReviewResults)
}).then(()=>{
console.log("Then " +tutorReviewResults.length)
res.json(tutorReviewResults)
})
.catch(err => res.status(400).json('Eroor: '+ err));
});
module.exports = router;
......@@ -13,6 +13,7 @@ router.route('/add').post(async(req,res) =>{
const student_id = mongoose.Types.ObjectId(req.body.student_id);
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;
......@@ -27,6 +28,7 @@ router.route('/add').post(async(req,res) =>{
student_id,
year,
stream,
Subjects,
subject01,
subject02,
subject03,
......@@ -49,7 +51,7 @@ router.route('/add').post(async(req,res) =>{
else {
ALevelResults.findById(req.body.student_id, function(err, details){
if(!details){
req.status(404).send("data is not found");
res.status(404).send("data is not found");
}
else {
details.year = year;
......
......@@ -30,31 +30,32 @@ transporter.verify((error, success) => {
router.route('/').get((req,res) =>{
tutor.find()
.then(tutors => res.json(tutors))
.catch(err => res.status(400).json('Eroor: '+ err));
});
router.route('/getFilteredList').post((req,res) =>{
console.log(req.body);
tutor.find({
"tutor_Stream" : {'$regex': req.body.selectedStream, '$options': 'i'},
"tutor_subjects" : {'$regex': req.body.selectedSubject, '$options': 'i'},
"tutor_main_district" : {'$regex': req.body.selectedDistrict, '$options': 'i'},
"tutor_main_city" : {'$regex': req.body.selectedCity, '$options': 'i'},
"tutor_medium" : {'$regex': req.body.selectedLanguage, '$options': 'i'},
"tutor_class_type" : {'$regex': req.body.selectedClassType, '$options': 'i'},
})
.then(tutors => {
//console.log(tutors);
console.log(tutors);
res.json(tutors)
})
.catch(err => res.status(400).json('Eroor: '+ err));
});
router.route('/:id').get(function (req, res) {
let id = req.params.id;
console.log("TutorId : " + id)
tutor.findById(id).populate(['tutor_instituteIDList']).then(tutor => {
console.log(tutor);
res.json(tutor);
}).catch(err => res.status(400).json('Eroor: '+ err));
});
// router.route('/:id').get(function (req, res) {
// let id = req.params.id;
// console.log("TutorId : " + id)
// tutor.findById(id).populate("tutor_instituteIDList").then(tutor => {
// console.log(tutor);
// res.json(tutor);
// }).catch(err => res.status(400).json('Eroor: '+ err));
// });
router.route('/add').post(async(req,res) =>{
console.log("Tutor Registration began")
......
const router = require('express').Router();
let tutorRatingsRoute = require('../models/TutorRatingAndReviews.model');
const mongoose = require("mongoose");
router.route('/add').post(async(req,res) =>{
const tutor_id = mongoose.Types.ObjectId(req.body.tutor_id);
const student_id = mongoose.Types.ObjectId(req.body.student_id);
const rating = req.body.rating;
const review = req.body.review;
const version = req.body.version;
const newTutorRating = new tutorRatingsRoute({
tutor_id,
student_id,
rating,
review,
version,
});
newTutorRating.save()
.then( () => {
res.json('New Review Added');
})
.catch(err =>res.status(400).json('Error: '+err));
});
module.exports = router;
......@@ -4,7 +4,7 @@ const bodyParser = require('body-parser');
const mongoose =require('mongoose');
require('dotenv').config();
const app = express();
const port = process.env.PORT || 5000;
const port = process.env.PORT || 5001;
app.use(bodyParser.urlencoded({ extended: true }));
......@@ -29,6 +29,8 @@ const userAccount = require('./routes/userAccount.route');
const questionManage = require('./routes/question.route');
const financeRouter = require('./routes/finance.route');
const studentResult = require('./routes/studentALResult.route');
const tutorRating = require('./routes/tutorRatings.route');
const filteredList = require('./routes/filteredList.route');
app.use('/studentSingUp',studentRouter);
app.use('/tutorSingUp',tutorRouter);
......@@ -37,6 +39,8 @@ app.use('/userAccount',userAccount);
app.use('/questions', questionManage);
app.use('/admin/finance', financeRouter);
app.use('/studentResults', studentResult);
app.use('/tutorRatings', tutorRating);
app.use('/filteredList', filteredList);
app.listen(port, () => {
console.log(`Server is running on Port: ${port}`);
......
......@@ -12473,6 +12473,11 @@
"resolved": "https://registry.npmjs.org/react-error-overlay/-/react-error-overlay-6.0.9.tgz",
"integrity": "sha512-nQTTcUu+ATDbrSD1BZHr5kgSD4oF8OFjxun8uAaL8RwPBacGBNPf/yAuVVdx17N8XNzRDMrZ9XcKZHCjPW+9ew=="
},
"react-icons": {
"version": "4.2.0",
"resolved": "https://registry.npmjs.org/react-icons/-/react-icons-4.2.0.tgz",
"integrity": "sha512-rmzEDFt+AVXRzD7zDE21gcxyBizD/3NqjbX6cmViAgdqfJ2UiLer8927/QhhrXQV7dEj/1EGuOTPp7JnLYVJKQ=="
},
"react-is": {
"version": "16.13.1",
"resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz",
......
......@@ -10,6 +10,7 @@
"react": "^17.0.2",
"react-dom": "^17.0.2",
"react-dropdown": "^1.9.2",
"react-icons": "^4.2.0",
"react-router-dom": "^5.2.0",
"react-scripts": "4.0.3",
"react-select-search": "^3.0.8",
......
......@@ -16,6 +16,7 @@ import QuestionDetails from "./Components/IT18050240/question_details"
import QuestionLayout from "./Components/IT18050240/question_layout"
//import AdminQuestionManagement from "./Components/IT18050240/admin_question_management.js"
import QuestionBank from "./Components/IT18050240/question_bank"
import TutorProfileView from "./Components/HomePage/TutorProfileView";
function App() {
return (
......@@ -27,6 +28,7 @@ function App() {
<Route path="/SignUp" exact component={SignUp}/>
<Route path="/beforeConfirm" exact component={beforeConfirmation}/>
<Route path="/AccountVerified/:id" exact component={VerifiedAccount}/>
<Route path="/Home/ViewProfile/:id" exact component={TutorProfileView}/>
{/*<Route path="/studentDashboard" exact component={StudentDashboard}/>*/}
......
......@@ -343,6 +343,7 @@ export default class Dashboard extends Component {
{/*</Link>*/}
</li>
<li>
<a href="#">
<i className="metismenu-icon fa fa-calendar"></i>
......
......@@ -97,8 +97,7 @@ export default class TutorCard extends Component{
<img src={RecommendIcon} style={{width:'100px', height:'90px', float:'left', margin:'10px'}}/>
</div>
</div>
{/*{console.log("In Tutor Card")}*/}
{/*{console.log(this.props)}*/}
</div>
)
}
......
......@@ -113,11 +113,17 @@ export default class ALResults extends Component{
onSubmitResults(e){
//let student_id = '60fc1aaf718c264214061846';
let Subject = {
[this.state.sub01] : this.state.sub01Result,
[this.state.sub02] : this.state.sub02Result,
[this.state.sub03] : this.state.sub03Result,
}
const newResult = {
student_id:this.state.studentID,
year:this.state.year,
stream:this.state.stream,
Subjects:Subject,
subject01:this.state.sub01,
subject02:this.state.sub02,
subject03:this.state.sub03,
......
const configs = {
BASE_URL: 'http://localhost:5000',
BASE_URL: 'http://localhost:5001',
};
module.exports = configs;
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