55 |
├── .gitignore ├── images ├── book.png ├── crown.png ├── iphone.jpg ├── shoes.png ├── wallet.png ├── watch.jpg ├── watch.png ├── wwwrrr.png ├── aeroplane.jpg ├── images.jfif ├── oneplus.png ├── tree_cs.png ├── google_question.png ├── model_50_epochs_plot.png └── randomly_permuted_costs_csacademy.png ├── assets ├── img │ ├── about.jpg │ ├── logo.png │ ├── watch.png │ ├── favicon.png │ ├── hero-bg.png │ ├── features-2.png │ ├── features-3.png │ ├── features.png │ ├── footer-bg.png │ ├── hero-img.png │ ├── items │ │ ├── bag2.jpg │ │ ├── bag1.jfif │ │ └── bag3.jfif │ ├── values-1.png │ ├── values-2.png │ ├── values-3.png │ ├── blog │ │ ├── blog-1.jpg │ │ ├── blog-2.jpg │ │ ├── blog-3.jpg │ │ ├── blog-4.jpg │ │ ├── comments-1.jpg │ │ ├── comments-2.jpg │ │ ├── comments-3.jpg │ │ ├── comments-4.jpg │ │ ├── comments-5.jpg │ │ ├── comments-6.jpg │ │ ├── blog-author.jpg │ │ ├── blog-recent-1.jpg │ │ ├── blog-recent-2.jpg │ │ ├── blog-recent-3.jpg │ │ ├── blog-recent-4.jpg │ │ ├── blog-recent-5.jpg │ │ └── blog-inside-post.jpg │ ├── pricing-free.png │ ├── team │ │ ├── team-1.jpg │ │ ├── team-2.jpg │ │ ├── team-3.jpg │ │ └── team-4.jpg │ ├── pricing-starter.png │ ├── apple-touch-icon.png │ ├── clients │ │ ├── client-1.png │ │ ├── client-2.png │ │ ├── client-3.png │ │ ├── client-4.png │ │ ├── client-5.png │ │ ├── client-6.png │ │ ├── client-7.png │ │ └── client-8.png │ ├── pricing-business.png │ ├── pricing-ultimate.png │ ├── portfolio │ │ ├── portfolio-1.jpg │ │ ├── portfolio-2.jpg │ │ ├── portfolio-3.jpg │ │ ├── portfolio-4.jpg │ │ ├── portfolio-5.jpg │ │ ├── portfolio-6.jpg │ │ ├── portfolio-7.jpg │ │ ├── portfolio-8.jpg │ │ └── portfolio-9.jpg │ ├── testimonials │ │ ├── testimonials-1.jpg │ │ ├── testimonials-2.jpg │ │ ├── testimonials-3.jpg │ │ ├── testimonials-4.jpg │ │ └── testimonials-5.jpg │ └── team-shape.svg ├── vendor │ ├── remixicon │ │ ├── remixicon.eot │ │ ├── remixicon.ttf │ │ ├── remixicon.woff │ │ └── remixicon.woff2 │ ├── font-awesome-4.7 │ │ ├── fonts │ │ │ ├── FontAwesome.otf │ │ │ ├── fontawesome-webfont.eot │ │ │ ├── fontawesome-webfont.ttf │ │ │ ├── fontawesome-webfont.woff │ │ │ └── fontawesome-webfont.woff2 │ │ └── HELP-US-OUT.txt │ ├── bootstrap-icons │ │ └── fonts │ │ │ ├── bootstrap-icons.woff │ │ │ └── bootstrap-icons.woff2 │ ├── mdi-font │ │ └── fonts │ │ │ ├── Material-Design-Iconic-Font.eot │ │ │ ├── Material-Design-Iconic-Font.ttf │ │ │ ├── Material-Design-Iconic-Font.woff │ │ │ └── Material-Design-Iconic-Font.woff2 │ ├── php-email-form │ │ └── validate.js │ ├── purecounter │ │ └── purecounter.js │ └── bootstrap │ │ └── css │ │ ├── bootstrap-reboot.min.css │ │ ├── bootstrap-reboot.rtl.min.css │ │ ├── bootstrap-reboot.rtl.css │ │ └── bootstrap-reboot.css ├── css │ ├── search.css │ ├── upload.css │ ├── course.css │ ├── profile.css │ ├── thebox.css │ ├── signup.css │ ├── notification.css │ └── chat.css └── js │ ├── new.js │ ├── search.js │ └── main.js ├── Readmeimages ├── chat1.PNG ├── chat2.PNG ├── login.PNG ├── pay1.PNG ├── pay2.PNG ├── homepage.PNG ├── lostform.PNG ├── viewitem.PNG ├── foundform.PNG ├── notification.PNG ├── paymentPage.PNG ├── razorpay_success.PNG ├── adminsideconfirmation.PNG ├── notification_acceptance.PNG └── profile_and_rewards_page.PNG ├── views ├── error.ejs ├── partials │ ├── admin-sidebar.ejs │ └── admin-footer.ejs ├── login.ejs ├── signup.ejs ├── Forgotpassword.ejs ├── ResetPassword.ejs ├── item.ejs ├── chatdef.ejs ├── admin │ ├── user.ejs │ └── allposts.ejs ├── notification.ejs ├── lostform.ejs ├── upload.ejs ├── edit.ejs └── payment.ejs ├── config ├── auth_required.js └── passport.js ├── models ├── socket.js ├── chat.js ├── notification.js ├── post.js └── user.js ├── routes ├── admin.js ├── price.js ├── chat.js ├── user.js ├── payment.js ├── lost.js ├── auth.js └── post.js ├── README.md ├── package.json └── app.js /.gitignore: -------------------------------------------------------------------------------- 1 | .env 2 | node_modules -------------------------------------------------------------------------------- /images/book.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Code-Geasss/TheLostBox/HEAD/images/book.png -------------------------------------------------------------------------------- /images/crown.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Code-Geasss/TheLostBox/HEAD/images/crown.png -------------------------------------------------------------------------------- /images/iphone.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Code-Geasss/TheLostBox/HEAD/images/iphone.jpg -------------------------------------------------------------------------------- /images/shoes.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Code-Geasss/TheLostBox/HEAD/images/shoes.png -------------------------------------------------------------------------------- /images/wallet.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Code-Geasss/TheLostBox/HEAD/images/wallet.png -------------------------------------------------------------------------------- /images/watch.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Code-Geasss/TheLostBox/HEAD/images/watch.jpg -------------------------------------------------------------------------------- /images/watch.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Code-Geasss/TheLostBox/HEAD/images/watch.png -------------------------------------------------------------------------------- /images/wwwrrr.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Code-Geasss/TheLostBox/HEAD/images/wwwrrr.png -------------------------------------------------------------------------------- /assets/img/about.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Code-Geasss/TheLostBox/HEAD/assets/img/about.jpg -------------------------------------------------------------------------------- /assets/img/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Code-Geasss/TheLostBox/HEAD/assets/img/logo.png -------------------------------------------------------------------------------- /assets/img/watch.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Code-Geasss/TheLostBox/HEAD/assets/img/watch.png -------------------------------------------------------------------------------- /images/aeroplane.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Code-Geasss/TheLostBox/HEAD/images/aeroplane.jpg -------------------------------------------------------------------------------- /images/images.jfif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Code-Geasss/TheLostBox/HEAD/images/images.jfif -------------------------------------------------------------------------------- /images/oneplus.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Code-Geasss/TheLostBox/HEAD/images/oneplus.png -------------------------------------------------------------------------------- /images/tree_cs.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Code-Geasss/TheLostBox/HEAD/images/tree_cs.png -------------------------------------------------------------------------------- /Readmeimages/chat1.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Code-Geasss/TheLostBox/HEAD/Readmeimages/chat1.PNG -------------------------------------------------------------------------------- /Readmeimages/chat2.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Code-Geasss/TheLostBox/HEAD/Readmeimages/chat2.PNG -------------------------------------------------------------------------------- /Readmeimages/login.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Code-Geasss/TheLostBox/HEAD/Readmeimages/login.PNG -------------------------------------------------------------------------------- /Readmeimages/pay1.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Code-Geasss/TheLostBox/HEAD/Readmeimages/pay1.PNG -------------------------------------------------------------------------------- /Readmeimages/pay2.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Code-Geasss/TheLostBox/HEAD/Readmeimages/pay2.PNG -------------------------------------------------------------------------------- /assets/img/favicon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Code-Geasss/TheLostBox/HEAD/assets/img/favicon.png -------------------------------------------------------------------------------- /assets/img/hero-bg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Code-Geasss/TheLostBox/HEAD/assets/img/hero-bg.png -------------------------------------------------------------------------------- /Readmeimages/homepage.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Code-Geasss/TheLostBox/HEAD/Readmeimages/homepage.PNG -------------------------------------------------------------------------------- /Readmeimages/lostform.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Code-Geasss/TheLostBox/HEAD/Readmeimages/lostform.PNG -------------------------------------------------------------------------------- /Readmeimages/viewitem.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Code-Geasss/TheLostBox/HEAD/Readmeimages/viewitem.PNG -------------------------------------------------------------------------------- /assets/img/features-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Code-Geasss/TheLostBox/HEAD/assets/img/features-2.png -------------------------------------------------------------------------------- /assets/img/features-3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Code-Geasss/TheLostBox/HEAD/assets/img/features-3.png -------------------------------------------------------------------------------- /assets/img/features.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Code-Geasss/TheLostBox/HEAD/assets/img/features.png -------------------------------------------------------------------------------- /assets/img/footer-bg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Code-Geasss/TheLostBox/HEAD/assets/img/footer-bg.png -------------------------------------------------------------------------------- /assets/img/hero-img.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Code-Geasss/TheLostBox/HEAD/assets/img/hero-img.png -------------------------------------------------------------------------------- /assets/img/items/bag2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Code-Geasss/TheLostBox/HEAD/assets/img/items/bag2.jpg -------------------------------------------------------------------------------- /assets/img/values-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Code-Geasss/TheLostBox/HEAD/assets/img/values-1.png -------------------------------------------------------------------------------- /assets/img/values-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Code-Geasss/TheLostBox/HEAD/assets/img/values-2.png -------------------------------------------------------------------------------- /assets/img/values-3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Code-Geasss/TheLostBox/HEAD/assets/img/values-3.png -------------------------------------------------------------------------------- /Readmeimages/foundform.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Code-Geasss/TheLostBox/HEAD/Readmeimages/foundform.PNG -------------------------------------------------------------------------------- /assets/img/blog/blog-1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Code-Geasss/TheLostBox/HEAD/assets/img/blog/blog-1.jpg -------------------------------------------------------------------------------- /assets/img/blog/blog-2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Code-Geasss/TheLostBox/HEAD/assets/img/blog/blog-2.jpg -------------------------------------------------------------------------------- /assets/img/blog/blog-3.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Code-Geasss/TheLostBox/HEAD/assets/img/blog/blog-3.jpg -------------------------------------------------------------------------------- /assets/img/blog/blog-4.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Code-Geasss/TheLostBox/HEAD/assets/img/blog/blog-4.jpg -------------------------------------------------------------------------------- /assets/img/items/bag1.jfif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Code-Geasss/TheLostBox/HEAD/assets/img/items/bag1.jfif -------------------------------------------------------------------------------- /assets/img/items/bag3.jfif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Code-Geasss/TheLostBox/HEAD/assets/img/items/bag3.jfif -------------------------------------------------------------------------------- /assets/img/pricing-free.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Code-Geasss/TheLostBox/HEAD/assets/img/pricing-free.png -------------------------------------------------------------------------------- /assets/img/team/team-1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Code-Geasss/TheLostBox/HEAD/assets/img/team/team-1.jpg -------------------------------------------------------------------------------- /assets/img/team/team-2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Code-Geasss/TheLostBox/HEAD/assets/img/team/team-2.jpg -------------------------------------------------------------------------------- /assets/img/team/team-3.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Code-Geasss/TheLostBox/HEAD/assets/img/team/team-3.jpg -------------------------------------------------------------------------------- /assets/img/team/team-4.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Code-Geasss/TheLostBox/HEAD/assets/img/team/team-4.jpg -------------------------------------------------------------------------------- /images/google_question.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Code-Geasss/TheLostBox/HEAD/images/google_question.png -------------------------------------------------------------------------------- /views/error.ejs: -------------------------------------------------------------------------------- 1 |
<%= error.stack %>4 | -------------------------------------------------------------------------------- /Readmeimages/notification.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Code-Geasss/TheLostBox/HEAD/Readmeimages/notification.PNG -------------------------------------------------------------------------------- /Readmeimages/paymentPage.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Code-Geasss/TheLostBox/HEAD/Readmeimages/paymentPage.PNG -------------------------------------------------------------------------------- /assets/img/blog/comments-1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Code-Geasss/TheLostBox/HEAD/assets/img/blog/comments-1.jpg -------------------------------------------------------------------------------- /assets/img/blog/comments-2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Code-Geasss/TheLostBox/HEAD/assets/img/blog/comments-2.jpg -------------------------------------------------------------------------------- /assets/img/blog/comments-3.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Code-Geasss/TheLostBox/HEAD/assets/img/blog/comments-3.jpg -------------------------------------------------------------------------------- /assets/img/blog/comments-4.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Code-Geasss/TheLostBox/HEAD/assets/img/blog/comments-4.jpg -------------------------------------------------------------------------------- /assets/img/blog/comments-5.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Code-Geasss/TheLostBox/HEAD/assets/img/blog/comments-5.jpg -------------------------------------------------------------------------------- /assets/img/blog/comments-6.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Code-Geasss/TheLostBox/HEAD/assets/img/blog/comments-6.jpg -------------------------------------------------------------------------------- /assets/img/pricing-starter.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Code-Geasss/TheLostBox/HEAD/assets/img/pricing-starter.png -------------------------------------------------------------------------------- /assets/img/apple-touch-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Code-Geasss/TheLostBox/HEAD/assets/img/apple-touch-icon.png -------------------------------------------------------------------------------- /assets/img/blog/blog-author.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Code-Geasss/TheLostBox/HEAD/assets/img/blog/blog-author.jpg -------------------------------------------------------------------------------- /assets/img/clients/client-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Code-Geasss/TheLostBox/HEAD/assets/img/clients/client-1.png -------------------------------------------------------------------------------- /assets/img/clients/client-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Code-Geasss/TheLostBox/HEAD/assets/img/clients/client-2.png -------------------------------------------------------------------------------- /assets/img/clients/client-3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Code-Geasss/TheLostBox/HEAD/assets/img/clients/client-3.png -------------------------------------------------------------------------------- /assets/img/clients/client-4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Code-Geasss/TheLostBox/HEAD/assets/img/clients/client-4.png -------------------------------------------------------------------------------- /assets/img/clients/client-5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Code-Geasss/TheLostBox/HEAD/assets/img/clients/client-5.png -------------------------------------------------------------------------------- /assets/img/clients/client-6.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Code-Geasss/TheLostBox/HEAD/assets/img/clients/client-6.png -------------------------------------------------------------------------------- /assets/img/clients/client-7.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Code-Geasss/TheLostBox/HEAD/assets/img/clients/client-7.png -------------------------------------------------------------------------------- /assets/img/clients/client-8.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Code-Geasss/TheLostBox/HEAD/assets/img/clients/client-8.png -------------------------------------------------------------------------------- /assets/img/pricing-business.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Code-Geasss/TheLostBox/HEAD/assets/img/pricing-business.png -------------------------------------------------------------------------------- /assets/img/pricing-ultimate.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Code-Geasss/TheLostBox/HEAD/assets/img/pricing-ultimate.png -------------------------------------------------------------------------------- /images/model_50_epochs_plot.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Code-Geasss/TheLostBox/HEAD/images/model_50_epochs_plot.png -------------------------------------------------------------------------------- /Readmeimages/razorpay_success.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Code-Geasss/TheLostBox/HEAD/Readmeimages/razorpay_success.PNG -------------------------------------------------------------------------------- /assets/img/blog/blog-recent-1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Code-Geasss/TheLostBox/HEAD/assets/img/blog/blog-recent-1.jpg -------------------------------------------------------------------------------- /assets/img/blog/blog-recent-2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Code-Geasss/TheLostBox/HEAD/assets/img/blog/blog-recent-2.jpg -------------------------------------------------------------------------------- /assets/img/blog/blog-recent-3.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Code-Geasss/TheLostBox/HEAD/assets/img/blog/blog-recent-3.jpg -------------------------------------------------------------------------------- /assets/img/blog/blog-recent-4.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Code-Geasss/TheLostBox/HEAD/assets/img/blog/blog-recent-4.jpg -------------------------------------------------------------------------------- /assets/img/blog/blog-recent-5.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Code-Geasss/TheLostBox/HEAD/assets/img/blog/blog-recent-5.jpg -------------------------------------------------------------------------------- /assets/img/blog/blog-inside-post.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Code-Geasss/TheLostBox/HEAD/assets/img/blog/blog-inside-post.jpg -------------------------------------------------------------------------------- /assets/img/portfolio/portfolio-1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Code-Geasss/TheLostBox/HEAD/assets/img/portfolio/portfolio-1.jpg -------------------------------------------------------------------------------- /assets/img/portfolio/portfolio-2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Code-Geasss/TheLostBox/HEAD/assets/img/portfolio/portfolio-2.jpg -------------------------------------------------------------------------------- /assets/img/portfolio/portfolio-3.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Code-Geasss/TheLostBox/HEAD/assets/img/portfolio/portfolio-3.jpg -------------------------------------------------------------------------------- /assets/img/portfolio/portfolio-4.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Code-Geasss/TheLostBox/HEAD/assets/img/portfolio/portfolio-4.jpg -------------------------------------------------------------------------------- /assets/img/portfolio/portfolio-5.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Code-Geasss/TheLostBox/HEAD/assets/img/portfolio/portfolio-5.jpg -------------------------------------------------------------------------------- /assets/img/portfolio/portfolio-6.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Code-Geasss/TheLostBox/HEAD/assets/img/portfolio/portfolio-6.jpg -------------------------------------------------------------------------------- /assets/img/portfolio/portfolio-7.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Code-Geasss/TheLostBox/HEAD/assets/img/portfolio/portfolio-7.jpg -------------------------------------------------------------------------------- /assets/img/portfolio/portfolio-8.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Code-Geasss/TheLostBox/HEAD/assets/img/portfolio/portfolio-8.jpg -------------------------------------------------------------------------------- /assets/img/portfolio/portfolio-9.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Code-Geasss/TheLostBox/HEAD/assets/img/portfolio/portfolio-9.jpg -------------------------------------------------------------------------------- /assets/vendor/remixicon/remixicon.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Code-Geasss/TheLostBox/HEAD/assets/vendor/remixicon/remixicon.eot -------------------------------------------------------------------------------- /assets/vendor/remixicon/remixicon.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Code-Geasss/TheLostBox/HEAD/assets/vendor/remixicon/remixicon.ttf -------------------------------------------------------------------------------- /Readmeimages/adminsideconfirmation.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Code-Geasss/TheLostBox/HEAD/Readmeimages/adminsideconfirmation.PNG -------------------------------------------------------------------------------- /Readmeimages/notification_acceptance.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Code-Geasss/TheLostBox/HEAD/Readmeimages/notification_acceptance.PNG -------------------------------------------------------------------------------- /assets/vendor/remixicon/remixicon.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Code-Geasss/TheLostBox/HEAD/assets/vendor/remixicon/remixicon.woff -------------------------------------------------------------------------------- /assets/vendor/remixicon/remixicon.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Code-Geasss/TheLostBox/HEAD/assets/vendor/remixicon/remixicon.woff2 -------------------------------------------------------------------------------- /Readmeimages/profile_and_rewards_page.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Code-Geasss/TheLostBox/HEAD/Readmeimages/profile_and_rewards_page.PNG -------------------------------------------------------------------------------- /assets/img/testimonials/testimonials-1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Code-Geasss/TheLostBox/HEAD/assets/img/testimonials/testimonials-1.jpg -------------------------------------------------------------------------------- /assets/img/testimonials/testimonials-2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Code-Geasss/TheLostBox/HEAD/assets/img/testimonials/testimonials-2.jpg -------------------------------------------------------------------------------- /assets/img/testimonials/testimonials-3.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Code-Geasss/TheLostBox/HEAD/assets/img/testimonials/testimonials-3.jpg -------------------------------------------------------------------------------- /assets/img/testimonials/testimonials-4.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Code-Geasss/TheLostBox/HEAD/assets/img/testimonials/testimonials-4.jpg -------------------------------------------------------------------------------- /assets/img/testimonials/testimonials-5.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Code-Geasss/TheLostBox/HEAD/assets/img/testimonials/testimonials-5.jpg -------------------------------------------------------------------------------- /images/randomly_permuted_costs_csacademy.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Code-Geasss/TheLostBox/HEAD/images/randomly_permuted_costs_csacademy.png -------------------------------------------------------------------------------- /assets/vendor/font-awesome-4.7/fonts/FontAwesome.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Code-Geasss/TheLostBox/HEAD/assets/vendor/font-awesome-4.7/fonts/FontAwesome.otf -------------------------------------------------------------------------------- /assets/vendor/bootstrap-icons/fonts/bootstrap-icons.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Code-Geasss/TheLostBox/HEAD/assets/vendor/bootstrap-icons/fonts/bootstrap-icons.woff -------------------------------------------------------------------------------- /assets/vendor/bootstrap-icons/fonts/bootstrap-icons.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Code-Geasss/TheLostBox/HEAD/assets/vendor/bootstrap-icons/fonts/bootstrap-icons.woff2 -------------------------------------------------------------------------------- /assets/vendor/font-awesome-4.7/fonts/fontawesome-webfont.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Code-Geasss/TheLostBox/HEAD/assets/vendor/font-awesome-4.7/fonts/fontawesome-webfont.eot -------------------------------------------------------------------------------- /assets/vendor/font-awesome-4.7/fonts/fontawesome-webfont.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Code-Geasss/TheLostBox/HEAD/assets/vendor/font-awesome-4.7/fonts/fontawesome-webfont.ttf -------------------------------------------------------------------------------- /assets/vendor/mdi-font/fonts/Material-Design-Iconic-Font.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Code-Geasss/TheLostBox/HEAD/assets/vendor/mdi-font/fonts/Material-Design-Iconic-Font.eot -------------------------------------------------------------------------------- /assets/vendor/mdi-font/fonts/Material-Design-Iconic-Font.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Code-Geasss/TheLostBox/HEAD/assets/vendor/mdi-font/fonts/Material-Design-Iconic-Font.ttf -------------------------------------------------------------------------------- /assets/vendor/font-awesome-4.7/fonts/fontawesome-webfont.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Code-Geasss/TheLostBox/HEAD/assets/vendor/font-awesome-4.7/fonts/fontawesome-webfont.woff -------------------------------------------------------------------------------- /assets/vendor/font-awesome-4.7/fonts/fontawesome-webfont.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Code-Geasss/TheLostBox/HEAD/assets/vendor/font-awesome-4.7/fonts/fontawesome-webfont.woff2 -------------------------------------------------------------------------------- /assets/vendor/mdi-font/fonts/Material-Design-Iconic-Font.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Code-Geasss/TheLostBox/HEAD/assets/vendor/mdi-font/fonts/Material-Design-Iconic-Font.woff -------------------------------------------------------------------------------- /assets/vendor/mdi-font/fonts/Material-Design-Iconic-Font.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Code-Geasss/TheLostBox/HEAD/assets/vendor/mdi-font/fonts/Material-Design-Iconic-Font.woff2 -------------------------------------------------------------------------------- /assets/css/search.css: -------------------------------------------------------------------------------- 1 | 2 | .searchh 3 | { 4 | color:rgb(255, 255, 255); 5 | font-size:15px; 6 | width:25%; 7 | outline: 1px ridge rgb(109, 58, 114); 8 | background-color: transparent; 9 | } 10 | 11 | -------------------------------------------------------------------------------- /assets/js/new.js: -------------------------------------------------------------------------------- 1 | 2 | $(".dropdown-menu li").click(function(){ 3 | var selText = $(this).text(); 4 | $(this).parents('.btn-group').find('.dropdown-toggle').html(selText+' '); 5 | }); -------------------------------------------------------------------------------- /assets/vendor/font-awesome-4.7/HELP-US-OUT.txt: -------------------------------------------------------------------------------- 1 | I hope you love Font Awesome. If you've found it useful, please do me a favor and check out my latest project, 2 | Fort Awesome (https://fortawesome.com). It makes it easy to put the perfect icons on your website. Choose from our awesome, 3 | comprehensive icon sets or copy and paste your own. 4 | 5 | Please. Check it out. 6 | 7 | -Dave Gandy 8 | -------------------------------------------------------------------------------- /config/auth_required.js: -------------------------------------------------------------------------------- 1 | var unauthorised = (req,res,next) => { 2 | if(req.user) return next(); 3 | else res.send("You cannot access this route"); 4 | } 5 | 6 | var isAuthenticated = (req,res,next) => { 7 | if(req.isAuthenticated()) return next(); 8 | return res.redirect('/LogIn'); 9 | } 10 | 11 | module.exports = { 12 | unauthorised, 13 | isAuthenticated 14 | } -------------------------------------------------------------------------------- /models/socket.js: -------------------------------------------------------------------------------- 1 | const mongoose = require('mongoose') 2 | const { ObjectId } = mongoose.Schema; 3 | 4 | const socketSchema = new mongoose.Schema({ 5 | socketId: { 6 | type: String, 7 | required: true 8 | }, 9 | user: { 10 | type: Object, 11 | required: true 12 | }, 13 | email: { 14 | type: String, 15 | required: true 16 | } 17 | }); 18 | 19 | module.exports = mongoose.model("Socket", socketSchema); -------------------------------------------------------------------------------- /assets/css/upload.css: -------------------------------------------------------------------------------- 1 | .upload-btn-wrapper { 2 | position: relative; 3 | overflow: hidden; 4 | display: inline-block; 5 | } 6 | 7 | .btn { 8 | border: 2px solid gray; 9 | color: gray; 10 | background-color: white; 11 | padding: 8px 20px; 12 | border-radius: 8px; 13 | font-size: 20px; 14 | font-weight: bold; 15 | } 16 | 17 | .upload-btn-wrapper input[type=file] { 18 | font-size: 100px; 19 | position: absolute; 20 | left: 0; 21 | top: 0; 22 | opacity: 0; 23 | } 24 | 25 | -------------------------------------------------------------------------------- /assets/css/course.css: -------------------------------------------------------------------------------- 1 | button, 2 | input { 3 | font-family: "Montserrat", "Helvetica Neue", Arial, sans-serif; 4 | } 5 | 6 | .nav-item .nav-link, 7 | .nav-tabs .nav-link { 8 | -webkit-transition: all 300ms ease 0s; 9 | -moz-transition: all 300ms ease 0s; 10 | -o-transition: all 300ms ease 0s; 11 | -ms-transition: all 300ms ease 0s; 12 | transition: all 300ms ease 0s; 13 | } 14 | 15 | .searchh 16 | { 17 | font-size:15px; 18 | width:25%; 19 | /* border-bottom: red; */ 20 | outline: 1px ridge rgb(109, 58, 114); 21 | } 22 | -------------------------------------------------------------------------------- /models/chat.js: -------------------------------------------------------------------------------- 1 | const mongoose = require('mongoose') 2 | const { ObjectId } = mongoose.Schema; 3 | 4 | const chatSchema = new mongoose.Schema({ 5 | message: { 6 | type: String, 7 | required: true 8 | }, 9 | receiver: { 10 | type: Object, 11 | required: true 12 | }, 13 | sender: { 14 | type: Object, 15 | required: true 16 | }, 17 | time: { 18 | type: Date, 19 | default: Date.now 20 | } 21 | }); 22 | 23 | module.exports = mongoose.model("Chat", chatSchema); -------------------------------------------------------------------------------- /assets/img/team-shape.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /models/notification.js: -------------------------------------------------------------------------------- 1 | const mongoose = require('mongoose') 2 | const { ObjectId } = mongoose.Schema; 3 | 4 | const notificationSchema = new mongoose.Schema({ 5 | 6 | id : { 7 | type : String, 8 | required : true 9 | }, 10 | senderId : { 11 | type : ObjectId, 12 | ref : "User", 13 | }, 14 | receiverID : { 15 | type : ObjectId, 16 | ref : "User", 17 | }, 18 | brandName : { 19 | type : String, 20 | required : true 21 | }, 22 | description:{ 23 | type:String, 24 | required:true 25 | }, 26 | isAccept : { 27 | type : Number, 28 | required : true 29 | } 30 | }, 31 | {timestamps: true }); 32 | 33 | module.exports = mongoose.model("Notification", notificationSchema); -------------------------------------------------------------------------------- /views/partials/admin-sidebar.ejs: -------------------------------------------------------------------------------- 1 | 2 | 3 | 32 | -------------------------------------------------------------------------------- /routes/admin.js: -------------------------------------------------------------------------------- 1 | var express = require('express'); 2 | const router = express.Router(); 3 | 4 | const Post = require('../models/post'); 5 | var User = require('../models/user'); 6 | const Notification = require('../models/notification'); 7 | const { isAuthenticated, unauthorised } = require('../config/auth_required'); 8 | 9 | router.get('/admin',isAuthenticated,isAdmin,function(req,res,next) { 10 | 11 | var successMsg = req.flash('success')[0]; 12 | Post.find({},function (err,data) { 13 | 14 | if(err){ 15 | console.log(err); 16 | } 17 | else{ 18 | data1 = [...data]; 19 | console.log(data1); 20 | res.render('admin/allposts', {posts:data1,successMsg: successMsg, noMessages: !successMsg}); 21 | } 22 | }) 23 | }); 24 | 25 | router.get('/admin/user',isAuthenticated,isAdmin,function(req,res){ 26 | 27 | User.find({isAdmin:'false'},function(err,res1){ 28 | 29 | if(err){ 30 | console.log(err); 31 | } 32 | else{ 33 | console.log("inside"); 34 | console.log(res1); 35 | res.render('admin/user',{user:res1}); 36 | } 37 | }); 38 | }); 39 | 40 | function isAdmin(req,res,next){ 41 | if(req.user.isAdmin){ 42 | return next(); 43 | } 44 | res.redirect('/'); 45 | }; 46 | 47 | module.exports = router; -------------------------------------------------------------------------------- /models/post.js: -------------------------------------------------------------------------------- 1 | const mongoose = require('mongoose') 2 | const { ObjectId } = mongoose.Schema; 3 | 4 | const postSchema = new mongoose.Schema({ 5 | 6 | category_name:{ 7 | type:String, 8 | required:true 9 | }, 10 | posts:[{ 11 | title: { 12 | type: String, 13 | required: true, 14 | }, 15 | description: { 16 | type: String, 17 | required: true 18 | }, 19 | location: { 20 | type: String, 21 | required: true 22 | }, 23 | photo: { 24 | type:String 25 | }, 26 | color:{ 27 | type:String, 28 | required:true, 29 | }, 30 | brandname:{ 31 | type:String, 32 | required:true, 33 | }, 34 | category: { 35 | type: String, 36 | required: true 37 | }, 38 | cost : { 39 | type : Number, 40 | }, 41 | paymentDone : { 42 | type : Boolean, 43 | }, 44 | postedBy: { 45 | type: ObjectId, 46 | ref: "User" 47 | }, 48 | created: { 49 | type: Date, 50 | default: Date.now 51 | }, 52 | updated: Date 53 | }], 54 | 55 | }); 56 | 57 | module.exports = mongoose.model("Post", postSchema); -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # TheLostBox 2 | 3 | ## Home 4 |  5 | 6 | ## Login 7 |  8 | 9 | ## The person (who got the lost product) fills in the details of the item/product. 10 |  11 | 12 | ## The owner of the actual product has to fill the Lost Form. 13 |  14 | 15 | ## If the person (who got the lost product) thinks the details mentioned in the lost form (filled by actual owner) matches with the actual product, he/she rejects or accepts the request. 16 |  17 | 18 | ## If the person accepts the request, the actual owner can see his lost product/item 19 |  20 | 21 | ## The owner can see his actual lost product and select the options given 22 |  23 | 24 | ## Option for Chat/Messaging_System 25 |  26 |  27 | 28 | ## Payment Pages 29 |  30 | 31 | ## Payment using Razorpay 32 |  33 | 34 |  35 | 36 | 37 | ## The details of the transactions in Razorpay site. 38 |  39 | 40 | ## Details of all transactions in Admin page. 41 |  42 | 43 | ## Rewards for the person who found the lost product/item 44 |  45 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "thelostbox", 3 | "version": "1.0.0", 4 | "description": "", 5 | "main": "index.js", 6 | "scripts": { 7 | "start": "node app.js", 8 | "test": "echo \"Error: no test specified\" && exit 1" 9 | }, 10 | "repository": { 11 | "type": "git", 12 | "url": "git+https://github.com/kunal-16/TheLostBox.git" 13 | }, 14 | "engine": { 15 | "node": "10.x" 16 | }, 17 | "author": "Chintan", 18 | "license": "ISC", 19 | "bugs": { 20 | "url": "https://github.com/kunal-16/TheLostBox/issues" 21 | }, 22 | "homepage": "https://github.com/kunal-16/TheLostBox#readme", 23 | "dependencies": { 24 | "bcrypt": "^5.0.1", 25 | "body": "^5.1.0", 26 | "body-parser": "^1.19.0", 27 | "connect-flash": "^0.1.1", 28 | "connect-mongo": "^3.2.0", 29 | "cookie-parser": "^1.4.5", 30 | "cors": "^2.8.5", 31 | "crypto": "^1.0.1", 32 | "dotenv": "^8.2.0", 33 | "ejs": "^3.1.6", 34 | "express": "^4.17.1", 35 | "express-session": "^1.17.1", 36 | "express-validator": "^5.3.1", 37 | "formidable": "^1.2.2", 38 | "method-override": "^3.0.0", 39 | "mongoose": "^5.12.3", 40 | "morgan": "^1.10.0", 41 | "multer": "^1.4.2", 42 | "nodemailer": "^6.5.0", 43 | "parser": "^0.1.4", 44 | "passport": "^0.4.1", 45 | "passport-google-oauth": "^2.0.0", 46 | "passport-local": "^1.0.0", 47 | "path": "^0.12.7", 48 | "razorpay": "^2.0.6", 49 | "request": "^2.88.2", 50 | "socket.io": "^2.3.0", 51 | "uuid": "^8.3.2" 52 | } 53 | } 54 | -------------------------------------------------------------------------------- /models/user.js: -------------------------------------------------------------------------------- 1 | const mongoose = require('mongoose'); 2 | const { v1: uuidv1 } = require('uuid'); 3 | const crypto = require('crypto'); 4 | const { ObjectId } = mongoose.Schema; 5 | 6 | 7 | const userSchema = new mongoose.Schema({ 8 | guid:{ 9 | type:String, 10 | default:null 11 | }, 12 | fullname: { 13 | type: String, 14 | trim: true, 15 | required: true 16 | }, 17 | email: { 18 | type: String, 19 | trim: true, 20 | required: true 21 | }, 22 | isAdmin : { 23 | type : Boolean, 24 | default : false, 25 | }, 26 | password: { 27 | type: String, 28 | //required: true, 29 | }, 30 | created: { 31 | type: Date, 32 | default: Date.now 33 | }, 34 | updated: Date, 35 | profile_image:{ 36 | // User Image 37 | type: String, 38 | default:"https://image.flaticon.com/icons/svg/236/236831.svg", 39 | }, 40 | about: { 41 | type: String, 42 | trim: true 43 | }, 44 | rewards:{ 45 | type:Number, 46 | }, 47 | resetPasswordToken: String, 48 | resetPasswordExpires: Date, 49 | }); 50 | 51 | //virtual field 52 | userSchema.methods.encryptPassword = function(password){ 53 | return bcrypt.hashSync(password,bcrypt.genSaltSync(5),null); 54 | }; 55 | 56 | userSchema.methods.validPassword = function(password){ 57 | return bcrypt.compareSync(password,this.password); 58 | }; 59 | 60 | module.exports = mongoose.model("User", userSchema); -------------------------------------------------------------------------------- /routes/price.js: -------------------------------------------------------------------------------- 1 | var express = require('express'); 2 | const router = express.Router(); 3 | const request = require('request'); 4 | 5 | const Post = require('../models/post'); 6 | const { isAuthenticated, unauthorised } = require('../config/auth_required'); 7 | 8 | router.get('/price/:title/:id',function(req,res){ 9 | 10 | var title = req.params.title; 11 | var postId = req.params.id; 12 | console.log(postId); 13 | 14 | title = title.replace(/ /g, '%20'); 15 | console.log(title); 16 | 17 | request('https://vinitscraper.herokuapp.com/home/'+title, function (error, response, body) { 18 | console.error('error:', error); // Print the error 19 | console.log('statusCode:', response && response.statusCode); // Print the response status code if a response was received 20 | console.log('Price:', body); // Print the data received 21 | var data = body; 22 | console.log(data); 23 | 24 | data = data.replace(/,/g, ""); 25 | data1 = parseInt(data); 26 | data1 = data1*(0.25); 27 | data1 = parseInt(data1); 28 | 29 | Post.findOneAndUpdate({ "posts._id": postId },{$set:{ 30 | 'posts.$.cost': data1, 31 | }}, 32 | {new:true},function(err,post){ 33 | if(err){ 34 | console.log(err); 35 | // It is coming here from flask server. 36 | } 37 | else{ 38 | 39 | res.redirect(req.get('referer')); //this to redirect to the page from where u came. 40 | } 41 | }); 42 | }); 43 | }); 44 | 45 | module.exports = router; -------------------------------------------------------------------------------- /routes/chat.js: -------------------------------------------------------------------------------- 1 | const express = require('express'); 2 | const { isAuthenticated, unauthorised } = require('../config/auth_required'); 3 | const router = express.Router(); 4 | const Chat = require('../models/chat'); 5 | const User = require('../models/user'); 6 | 7 | 8 | router.get('/chatlist/:senderId',isAuthenticated,async function(req,res){ 9 | 10 | const senderId = req.params.senderId; 11 | let chatList1 = await Chat.distinct("receiver._id",{ 'sender._id': senderId }) 12 | let chatList2 = await Chat.distinct("sender._id",{ 'receiver._id': senderId }) 13 | let chatList = await chatList1.concat(chatList2); 14 | let distinctChatList = [...new Set(chatList)] 15 | User.find({ _id: { $in: distinctChatList } }) 16 | .select('fullname email created updated ') 17 | .exec((err,data) => { 18 | if(err || !data){ 19 | res.status(400).json({ 20 | error: err 21 | }) 22 | } 23 | //console.log(data); 24 | res.render('chatdef',{data:data,currentuser:req.user}); 25 | }); 26 | }); 27 | 28 | router.get('/chats/:senderId/:receiverId',isAuthenticated,function(req,res){ 29 | const senderId = req.params.senderId; 30 | const receiverId = req.params.receiverId; 31 | 32 | Chat.find({ $or: [{ 'receiver._id': receiverId, 'sender._id': senderId },{ 'sender._id': receiverId, 'receiver._id': senderId }] }, 33 | (err, chats) => { 34 | if(err || !chats){ 35 | console.log("err"); 36 | } 37 | else 38 | { 39 | //console.log(chats); 40 | //console.log(req.user); 41 | User.findById(receiverId,function(err,result){ 42 | var data=result; 43 | //console.log(data); 44 | res.render('chat',{chats:chats,currentuser:req.user,receiveruser:data}); 45 | }) 46 | 47 | } 48 | }); 49 | 50 | }); 51 | 52 | 53 | module.exports = router; -------------------------------------------------------------------------------- /assets/css/profile.css: -------------------------------------------------------------------------------- 1 | 2 | .emp-profile{ 3 | padding: 3%; 4 | margin-top: 3%; 5 | margin-bottom: 3%; 6 | border-radius: 0.5rem; 7 | background: #fff; 8 | border-style:solid; 9 | } 10 | .profile-img{ 11 | text-align: center; 12 | } 13 | .profile-img img{ 14 | width: 70%; 15 | height: 100%; 16 | } 17 | .profile-img .file { 18 | position: relative; 19 | overflow: hidden; 20 | margin-top: -20%; 21 | width: 70%; 22 | border: none; 23 | border-radius: 0; 24 | font-size: 15px; 25 | background: #212529b8; 26 | } 27 | .profile-img .file input { 28 | position: absolute; 29 | opacity: 0; 30 | right: 0; 31 | top: 0; 32 | } 33 | .profile-head h5{ 34 | color: #333; 35 | } 36 | .profile-head h6{ 37 | color: #0062cc; 38 | } 39 | .profile-edit-btn{ 40 | border: none; 41 | border-radius: 1.5rem; 42 | width: 70%; 43 | padding: 2%; 44 | font-weight: 600; 45 | color: #6c757d; 46 | cursor: pointer; 47 | } 48 | .proile-rating{ 49 | font-size: 12px; 50 | color: #818182; 51 | margin-top: 5%; 52 | } 53 | .proile-rating span{ 54 | color: #495057; 55 | font-size: 15px; 56 | font-weight: 600; 57 | } 58 | .profile-head .nav-tabs{ 59 | margin-bottom:5%; 60 | } 61 | .profile-head .nav-tabs .nav-link{ 62 | font-weight:600; 63 | border: none; 64 | } 65 | .profile-head .nav-tabs .nav-link.active{ 66 | border: none; 67 | border-bottom:2px solid #0062cc; 68 | } 69 | .profile-work{ 70 | padding: 14%; 71 | margin-top: -15%; 72 | } 73 | .profile-work p{ 74 | font-size: 12px; 75 | color: #818182; 76 | font-weight: 600; 77 | margin-top: 10%; 78 | } 79 | .profile-work a{ 80 | text-decoration: none; 81 | color: #495057; 82 | font-weight: 600; 83 | font-size: 14px; 84 | } 85 | .profile-work ul{ 86 | list-style: none; 87 | } 88 | .profile-tab label{ 89 | font-weight: 600; 90 | } 91 | .profile-tab p{ 92 | font-weight: 600; 93 | color: #0062cc; 94 | } -------------------------------------------------------------------------------- /routes/user.js: -------------------------------------------------------------------------------- 1 | const { isAuthenticated, unauthorised } = require('../config/auth_required'); 2 | const express = require('express'); 3 | const router = express.Router(); 4 | const multer = require('multer'); 5 | const path = require('path'); 6 | 7 | 8 | var User = require('../models/user'); 9 | const Post = require('../models/post'); 10 | 11 | const MIME_TYPE_MAP = { 12 | "image/png": "png", 13 | "image/jpeg": "jpg", 14 | "image/jpg": "jpg" 15 | }; 16 | 17 | const storage = multer.diskStorage({ 18 | destination: (req, file, cb) => { 19 | const isValid = MIME_TYPE_MAP[file.mimetype]; 20 | let error = new Error("Invalid mime type"); 21 | if (isValid) { 22 | error = null; 23 | } 24 | cb(error, "images/"); 25 | }, 26 | filename: (req, file, cb) => { 27 | const name = file.originalname 28 | .toLowerCase() 29 | .split(" ") 30 | .join("-"); 31 | const ext = MIME_TYPE_MAP[file.mimetype]; 32 | cb(null, name); 33 | } 34 | }); 35 | 36 | 37 | router.get('/profile',isAuthenticated,function(req,res){ 38 | var currentUser= req.user; 39 | 40 | Post.aggregate([ 41 | {$unwind:"$posts"}, 42 | {$match:{"posts.postedBy":currentUser._id}}, 43 | ]).exec(function(err,result){ 44 | if(err) console.log(err); 45 | console.log(result); 46 | res.render('profile',{currentUser:currentUser,result:result}); 47 | }); 48 | 49 | }); 50 | 51 | 52 | router.post('/save', unauthorised,multer({ storage: storage }).single("photo"),(req, res, next) => { 53 | console.log(req.body); 54 | var name = req.body.fullname; 55 | var about = req.body.about; 56 | data=path.join('/images/' + req.file.filename); 57 | var path2 = data.replace(/\\/g, '/'); 58 | console.log(path2); 59 | 60 | User.findOneAndUpdate({email:req.user.email},{fullname:name,about:about,profile_image:path2},function(err,result){ 61 | if(err) console.log(err); 62 | res.redirect('/profile'); 63 | }); 64 | }); 65 | 66 | module.exports=router; -------------------------------------------------------------------------------- /assets/css/thebox.css: -------------------------------------------------------------------------------- 1 | .container { 2 | padding: 0; 3 | padding-top: 40px; 4 | margin: 0; 5 | height: 100%; 6 | width: 1200px; 7 | margin: 0 auto; 8 | min-height: 100%; 9 | 10 | } 11 | 12 | .spacecontainer { 13 | padding: 0; 14 | margin: 0; 15 | 16 | width: 1200px; 17 | margin: 0 auto; 18 | height:50px; 19 | min-height: 100%; 20 | } 21 | 22 | .slidecontainer { 23 | width: 100%; 24 | } 25 | 26 | .slider { 27 | -webkit-appearance: none; 28 | width: 100%; 29 | height: 25px; 30 | background: #d3d3d3; 31 | outline: none; 32 | opacity: 0.7; 33 | -webkit-transition: .2s; 34 | transition: opacity .2s; 35 | } 36 | 37 | .slider:hover { 38 | opacity: 1; 39 | } 40 | 41 | .slider::-webkit-slider-thumb { 42 | -webkit-appearance: none; 43 | appearance: none; 44 | width: 25px; 45 | height: 25px; 46 | background: #4CAF50; 47 | cursor: pointer; 48 | } 49 | 50 | .slider::-moz-range-thumb { 51 | width: 25px; 52 | height: 25px; 53 | background: #4CAF50; 54 | cursor: pointer; 55 | } 56 | 57 | .button{ 58 | background-color: #008CBA; 59 | border: none; 60 | color: white; 61 | padding: 5px 20px; 62 | text-align: center; 63 | text-decoration: none; 64 | display: inline-block; 65 | font-size: 16px; 66 | margin: 4px 2px; 67 | cursor: pointer; 68 | } 69 | 70 | 71 | .dropbtn { 72 | background-color: #4c6faf; 73 | color: white; 74 | padding: 12px; 75 | font-size: 12px; 76 | border: none; 77 | } 78 | 79 | .dropdown { 80 | position: relative; 81 | display: inline-block; 82 | } 83 | 84 | .dropdown-content { 85 | display: none; 86 | position: absolute; 87 | background-color: #f1f1f1; 88 | min-width: 160px; 89 | box-shadow: 0px 8px 16px 0px rgba(0,0,0,0.2); 90 | z-index: 1; 91 | } 92 | 93 | .dropdown-content a { 94 | color: black; 95 | padding: 12px 12px; 96 | text-decoration: none; 97 | display: block; 98 | } 99 | 100 | .dropdown-content a:hover {background-color: #ddd;} 101 | 102 | .dropdown:hover .dropdown-content {display: block;} 103 | 104 | .dropdown:hover .dropbtn {background-color: #5a3e8e;} -------------------------------------------------------------------------------- /routes/payment.js: -------------------------------------------------------------------------------- 1 | const express = require('express'); 2 | const router = express.Router(); 3 | var crypto = require('crypto'); 4 | 5 | const { isAuthenticated, unauthorised } = require('../config/auth_required'); 6 | 7 | const bodyParser = require('body-parser'); 8 | const Razorpay = require("razorpay"); 9 | var User = require('../models/user'); 10 | const Post = require('../models/post'); 11 | 12 | const instance = new Razorpay({ 13 | key_id : process.env.KEY_ID, 14 | key_secret : process.env.KEY_SECRET 15 | }); 16 | 17 | 18 | router.get("/payments/:id/:id2",(req,res)=>{ 19 | var rid= req.params.id; 20 | var postId = req.params.id2; 21 | console.log(rid); 22 | console.log(postId); 23 | 24 | Post.findOne({"posts._id": postId},{posts:{ $elemMatch:{_id:postId}}},function(err,result){ 25 | if(err){ 26 | console.log(err); 27 | } 28 | else{ 29 | var payAmount = result.posts[0].cost; 30 | res.render("payment",{key: process.env.KEY_ID,rid:rid,payAmount:payAmount,currentUser: req.user,pid:postId}); 31 | 32 | } 33 | }); 34 | 35 | }); 36 | 37 | router.post("/api/payment/order",(req,res)=>{ 38 | 39 | params = req.body; 40 | console.log(params); 41 | instance.orders 42 | .create(params) 43 | .then((data)=>{ 44 | res.send({sub:data, status:"success"}); 45 | }) 46 | .catch((error)=>{ 47 | res.send({sub:error,status:"failed"}); 48 | }); 49 | }); 50 | 51 | router.post("/api/payment/verify",(req,res)=>{ 52 | body = req.body.razorpay_order_id + "|" + req.body.razorpay_payment_id; 53 | 54 | var expectedSignature = crypto 55 | .createHmac("sha256",process.env.KEY_SECRET) 56 | .update(body.toString()) 57 | .digest("hex"); 58 | console.log("sig" + req.body.razorpay_signature); 59 | console.log("sig" + expectedSignature); 60 | //console.log("hii inside payment"); 61 | var response = {status : "failure"}; 62 | var rid = req.body.rid; 63 | var pid = req.body.pid; 64 | var amt = req.body.amt; 65 | var amt1 = parseInt(amt*0.75); 66 | 67 | 68 | if(expectedSignature === req.body.razorpay_signature) 69 | { 70 | response = {status : "success"}; 71 | User.findOneAndUpdate({"_id":rid},{$inc:{rewards:amt1}},{new:true},function(err,res){ 72 | if(err) console.log(err); 73 | console.log(res); 74 | 75 | }); 76 | 77 | //console.log(pid); 78 | Post.findOneAndUpdate({ "posts._id": pid },{$set:{ 79 | 'posts.$.paymentDone': true, 80 | }}, 81 | {new:true},function(err,post){ 82 | if(err){ 83 | console.log(err); 84 | } 85 | else{ 86 | //console.log(post); 87 | res.redirect('/'); 88 | } 89 | }); 90 | } 91 | 92 | }); 93 | 94 | module.exports = router; -------------------------------------------------------------------------------- /assets/vendor/php-email-form/validate.js: -------------------------------------------------------------------------------- 1 | /** 2 | * PHP Email Form Validation - v3.0 3 | * URL: https://bootstrapmade.com/php-email-form/ 4 | * Author: BootstrapMade.com 5 | */ 6 | (function () { 7 | "use strict"; 8 | 9 | let forms = document.querySelectorAll('.php-email-form'); 10 | 11 | forms.forEach( function(e) { 12 | e.addEventListener('submit', function(event) { 13 | event.preventDefault(); 14 | 15 | let thisForm = this; 16 | 17 | let action = thisForm.getAttribute('action'); 18 | let recaptcha = thisForm.getAttribute('data-recaptcha-site-key'); 19 | 20 | if( ! action ) { 21 | displayError(thisForm, 'The form action property is not set!') 22 | return; 23 | } 24 | thisForm.querySelector('.loading').classList.add('d-block'); 25 | thisForm.querySelector('.error-message').classList.remove('d-block'); 26 | thisForm.querySelector('.sent-message').classList.remove('d-block'); 27 | 28 | let formData = new FormData( thisForm ); 29 | 30 | if ( recaptcha ) { 31 | if(typeof grecaptcha !== "undefined" ) { 32 | grecaptcha.ready(function() { 33 | try { 34 | grecaptcha.execute(recaptcha, {action: 'php_email_form_submit'}) 35 | .then(token => { 36 | formData.set('recaptcha-response', token); 37 | php_email_form_submit(thisForm, action, formData); 38 | }) 39 | } catch(error) { 40 | displayError(thisForm, error) 41 | } 42 | }); 43 | } else { 44 | displayError(thisForm, 'The reCaptcha javascript API url is not loaded!') 45 | } 46 | } else { 47 | php_email_form_submit(thisForm, action, formData); 48 | } 49 | }); 50 | }); 51 | 52 | function php_email_form_submit(thisForm, action, formData) { 53 | fetch(action, { 54 | method: 'POST', 55 | body: formData, 56 | headers: {'X-Requested-With': 'XMLHttpRequest'} 57 | }) 58 | .then(response => { 59 | if( response.ok ) { 60 | return response.text() 61 | } else { 62 | throw new Error(`${response.status} ${response.statusText} ${response.url}`); 63 | } 64 | }) 65 | .then(data => { 66 | thisForm.querySelector('.loading').classList.remove('d-block'); 67 | if (data.trim() == 'OK') { 68 | thisForm.querySelector('.sent-message').classList.add('d-block'); 69 | thisForm.reset(); 70 | } else { 71 | throw new Error(data ? data : 'Form submission failed and no error message returned from: ' + action); 72 | } 73 | }) 74 | .catch((error) => { 75 | displayError(thisForm, error); 76 | }); 77 | } 78 | 79 | function displayError(thisForm, error) { 80 | thisForm.querySelector('.loading').classList.remove('d-block'); 81 | thisForm.querySelector('.error-message').innerHTML = error; 82 | thisForm.querySelector('.error-message').classList.add('d-block'); 83 | } 84 | 85 | })(); 86 | -------------------------------------------------------------------------------- /views/login.ejs: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 |
45 | The LostBox
46 |
47 |
48 |
55 |
56 | <%= errmessage %>
66 | <% }) %> 67 |
44 | The LostBox
45 |
46 |
47 |
54 |
55 | <%= errmessage %>
65 | <% }) %> 66 |
44 | The LostBox
45 |
46 |
47 |
53 |
54 |
55 | Forgot Password
73 |
44 | The LostBox
45 |
46 |
47 |
53 |
54 |
55 | Reset Password
73 |
54 | The LostBox
55 |
56 |
57 |
72 |
73 |
74 |
44 | The LostBox
45 |
46 |
47 |
62 |
63 |
64 |
43 | The LostBox
44 |
45 |
46 |
61 |
62 | Your Request is accepted for <%= result[index].brandName %>, <%= result[index].description %>
81 |Request
84 |Your Request has been sent to <%= result[index].receiverID.fullname %>.
85 |Please wait for the response.
87 | <% } else { %> 88 |Your Request is rejected.
89 |Sorry ur request was rejected by <%= result[index].receiverID.fullname %>
90 | <% } %> 91 | <%} else { %> 92 | 93 | <% if (result[index].isAccept == 0) { %> 94 |
84 | The LostBox
85 |
86 |
87 |
102 |
103 |
85 | The LostBox
86 |
87 |
88 |
103 |
104 |
84 | The LostBox
85 |
86 |
87 |
102 |
103 | Hi ${ user.email }
68 |We got a request to reset your Lostbox Password.
69 |If you ignore this message your password will not be changed. 78 | 79 | 80 |
82 | The LostBox
83 |
84 |
85 |
100 |
101 |