upload to codehub

This commit is contained in:
WDI-Ideas
2025-07-15 15:54:43 +05:30
commit 68ab9c960d
2640 changed files with 638592 additions and 0 deletions

52
.gitignore vendored Normal file
View File

@@ -0,0 +1,52 @@
# These are some examples of commonly ignored file patterns.
# You should customize this list as applicable to your project.
# Learn more about .gitignore:
# https://www.atlassian.com/git/tutorials/saving-changes/gitignore
# Node artifact files
node_modules/
dist/
# Compiled Java class files
*.class
# Compiled Python bytecode
*.py[cod]
# Log files
*.log
# Package files
*.jar
# Maven
target/
dist/
# JetBrains IDE
.idea/
# Unit test reports
TEST*.xml
# Generated by MacOS
.DS_Store
# Generated by Windows
Thumbs.db
# Applications
*.app
*.exe
*.war
# Large media files
*.mp4
*.tiff
*.avi
*.flv
*.mov
*.wmv
#env
.env

35
.htaccess Normal file
View File

@@ -0,0 +1,35 @@
# Disable index view
Options -Indexes
# Hide a specific file
<Files .env>
Order allow,deny
Deny from all
</Files>
# Hide a specific file
<Files .git>
Order allow,deny
Deny from all
</Files>
<Files .git/config>
Order allow,deny
Deny from all
</Files>
<Files .github>
Order allow,deny
Deny from all
</Files>
<Files .htaccess>
Order allow,deny
Deny from all
</Files>
# Hide a specific file
#<Files config>
#Order allow,deny
#Deny from all
#</Files>

1
README.md Normal file
View File

@@ -0,0 +1 @@
# Amble--Dimerse

3294
api.js Normal file

File diff suppressed because it is too large Load Diff

82
app3.js Normal file
View File

@@ -0,0 +1,82 @@
var express = require('express');
var app = express();
var keys = require('./keysfile');
const cookieSession = require('cookie-session');
const passport = require('passport');
var hbs = require('express-handlebars');
var bodyParser = require('body-parser');
var multer = require('multer');
var upload = multer();
app.engine('hbs', hbs({ extname: 'hbs', defaultLayout: 'layout', layoutsDir: __dirname + '/views' }));
app.set('view engine', 'hbs');
exports.env = require('dotenv').config().parsed || {};
// app.set('views','./views');
// app.use(express.static('public'));
app.use(bodyParser.urlencoded({ limit: '50mb', extended: true }));
app.use(bodyParser.json({ limit: '50mb' }));
app.set('views', './views');
// for parsing application/json
// app.use(bodyParser.json());
// // for parsing application/xwww-
// app.use(bodyParser.urlencoded({ extended: true }));
//form-urlencoded
// for parsing multipart/form-data
// app.use(upload.array());
app.use(express.static('public'));
module.exports = app;
var dbutil = require('./connection');
const GuestToggle = require('./models/guesttogglemodel');
dbutil.connectToServer(function (err) {
if (err) {
console.log("Mongo db error " + err);
} else {
app.use(cookieSession({
maxAge: 24 * 60 * 60 * 1000,
keys: [keys.session.cookieKey],
}));
app.enable('trust proxy')
app.use(passport.initialize());
app.use(passport.session());
app.use(require('./controllers'));
app.use((req, res, next) => {
res.status(404).json({ error: 'Route not found' });
});
const port = process.env.PORT || 83;
app.listen(port, () => {
console.log(`Server is running on port ${port}`);
});
checkAndCreateGuestToggle()
}
})
const checkAndCreateGuestToggle = async () => {
try {
const guest = await GuestToggle.findOne();
if (!guest) {
const newGuest = new GuestToggle({ status: false });
await newGuest.save();
console.log('GuestToggle created with status: false');
} else {
console.log('GuestToggle already exists:', guest);
}
} catch (error) {
console.error('Error checking/creating GuestToggle:', error);
}
};

37
config/passport.js Normal file
View File

@@ -0,0 +1,37 @@
const LocalStrategy = require('passport-local').Strategy;
const User = require('../models/user');
const bcrypt = require('bcryptjs');
module.exports = function(passport){
// Local Strategy
passport.use(new LocalStrategy(function(username, password, done){
// Match Username
let query = {username:username};
User.findOne(query, function(err, user){
if(err) throw err;
if(!user){
return done(null, false, {message: 'No user found'});
}
// Match Password
bcrypt.compare(password, user.password, function(err, isMatch){
if(err) throw err;
if(isMatch){
return done(null, user);
} else {
return done(null, false, {message: 'Wrong password'});
}
});
});
}));
passport.serializeUser(function(user, done) {
done(null, user.id);
});
passport.deserializeUser(function(id, done) {
User.findById(id, function(err, user) {
done(err, user);
});
});
}

View File

@@ -0,0 +1,56 @@
const Razorpay = require('razorpay');
// Initialize Razorpay client with your API key and secret
const razorpay = new Razorpay({
key_id: process.env.RAZORPAY_KEY_ID,
key_secret: process.env.RAZORPAY_KEY_SECRET
});
// Function to create an order using Razorpay API
const createRazorpayOrder = async (amount, recipid) => {
try {
const options = {
amount: amount * 100,
currency: 'INR',
receipt: recipid,
};
const order = await razorpay.orders.create(options);
return order;
} catch (error) {
console.error("Error creating Razorpay order:", error);
throw error;
}
}
// Function to process a refund using Razorpay API
const processRazorpayRefund = async (paymentId, amount) => {
try {
const refund = await razorpay.payments.refund(paymentId, { amount });
console.log("Refund processed successfully:", refund);
return refund;
} catch (error) {
console.error("Error processing Razorpay refund:", error);
throw error;
}
}
// Function to fetch details of an order using order ID
const getOrderDetails = async (orderId) => {
try {
const order = await razorpay.orders.fetch(orderId);
console.log("Order details:", order);
return order;
} catch (error) {
console.error("Error fetching order details:", error);
throw error;
}
}
// Export the function for creating Razorpay orders
module.exports = {
createRazorpayOrder,
processRazorpayRefund,
getOrderDetails
};

63
config/s3-config.js Normal file
View File

@@ -0,0 +1,63 @@
const aws = require('aws-sdk');
aws.config.update({
accessKeyId: process.env.AWS_ACCESS_KEY_ID,
secretAccessKey: process.env.AWS_SECRET_ACCESS_KEY,
region: process.env.AWS_REGION
});
// Create an S3 instance
const s3 = new aws.S3();
async function uploadFileToS3(fileData, directoryPath, mimetype) {
return new Promise((resolve, reject) => {
const params = {
Bucket: process.env.AWS_BUCKET_NAME,
Key: `${directoryPath}`,
Body: fileData,
ACL: 'public-read',
ContentType: mimetype
};
s3.upload(params, (err, data) => {
if (err) {
console.error("Error uploading to S3:", err);
reject(err);
} else {
console.log("Upload successful:", data.Location);
resolve(data.Location);
}
});
});
}
async function deleteFileToS3(imageUrl) {
try {
return new Promise(async (resolve, reject) => {
// Extract the key from the imageUrl
const key = imageUrl.split('/').slice(3).join('/');
// Construct parameters for deleteObject operation
const deleteParams = {
Bucket: process.env.AWS_BUCKET_NAME,
Key: key,
};
// Delete the object from S3 bucket
await s3.deleteObject(deleteParams).promise();
resolve();
});
} catch (error) {
console.error("Error occurred while deleting file from S3:", error);
resolve();
}
}
module.exports = {
uploadFileToS3,
deleteFileToS3,
s3
}

47
connection.js Normal file
View File

@@ -0,0 +1,47 @@
const mongoose = require('mongoose');
let db;
const mongoOptions = {
useNewUrlParser: true,
useUnifiedTopology: true,
};
const connectToServer = (callback) => {
if (db) {
console.warn('Already connected to the database');
return callback();
}
const connectionUrl = process.env.MONGODB_PASSWORD
? `mongodb://${process.env.MONGODB_USERNAME}:${process.env.MONGODB_PASSWORD}@${process.env.MONGODB_HOST}:${process.env.MONGODB_PORT}/${process.env.MONGODB_NAME}?authMechanism=DEFAULT&authSource=admin`
: `mongodb://${process.env.HOST}/${process.env.DB_NAME}`;
const message = process.env.MONGODB_PASSWORD
? 'Mongodb connected with password'
: 'Mongodb connected without password'
mongoose.connect(connectionUrl, mongoOptions, (err) => {
if (err) {
console.error('Error connecting to MongoDB:', err);
} else {
console.log(message);
db = mongoose.connection;
}
return callback(err);
});
};
const disconnectFromServer = () => {
if (db) {
mongoose.disconnect();
console.log('Disconnected from MongoDB');
} else {
console.warn('Not connected to the database');
}
};
module.exports = {
connectToServer,
disconnectFromServer,
};

2911
controllers/.filepart Normal file

File diff suppressed because it is too large Load Diff

4241
controllers/api.js Normal file

File diff suppressed because it is too large Load Diff

30
controllers/authcheck.js Normal file
View File

@@ -0,0 +1,30 @@
var auth = function(req, res, next) {
if (req.session.loginuserrole){
const loginduration = 1000*60*60*6;
const newd = new Date();
const oldd = req.session.logindatetime;
const logginsessionduration = Date.parse(newd) - Date.parse(oldd);
if(loginduration >= logginsessionduration){
return next();
}
{
delete req.session.loginuserid ;
delete req.session.loginfirstname;
delete req.session.loginusername ;
delete req.session.loginuserrole ;
delete req.session.logindatetime ;
res.redirect('/login');
}
}
else
{
delete req.session.loginuserid ;
delete req.session.loginfirstname;
delete req.session.loginusername ;
delete req.session.loginuserrole ;
delete req.session.logindatetime ;
res.redirect('/login');
}
};
module.exports = auth;

12
controllers/banner.js Normal file
View File

@@ -0,0 +1,12 @@
var express = require('express')
, router = express.Router();
var authcheck = require('./authcheck');
router.get('/',authcheck,function(req, res) {
var loggeduserid = req.session.loginuserid;
var loggedusername= req.session.loginusername;
var loggeduserrole= req.session.loginuserrole;
res.render('layout',{layout:'banner',loggeduserid:loggeduserid,loggedusername:loggedusername,loggeduserrole:loggeduserrole});
});
module.exports = router;

90
controllers/emailer.js Normal file
View File

@@ -0,0 +1,90 @@
var nodemailer = require('nodemailer');
var mailhbs = require('nodemailer-express-handlebars');
var keys = require('../keysfile');
var mailoptions = {
viewEngine: {
extname: '.hbs',
layoutsDir: 'views/email/',
defaultLayout : 'template',
partialsDir : 'views/partials/',
helpers:{
inc: function(value){return parseInt(value) + 1;}
},
},
viewPath: 'views/email/',
extName: '.hbs'
};
const transporter = nodemailer.createTransport({
host: 'smtp.gmail.com',
port: 587,
auth: {
user: keys.emailer.user,
pass: keys.emailer.pass,
}
});
transporter.use('compile',mailhbs(mailoptions));
module.exports = {
sendEmail: function(data) {
var maillist = [
data.cmail,
data.deemail,
];
transporter.sendMail({
from: 'Support <support@ensoimmersive.com>',
to: maillist,
subject: 'Nerolac - Colour My Space Experience',
template: 'template',
context: {
CNAME : data.cname,
CEMAIL: data.cmail,
CNUM: data.cnum,
SELECTED: data.selected,
VENAME: data.vname,
VEMAIL: data.vemail,
VENUM: data.vnum,
HASONESILVER: data.hasOneBhkSilver,
HASONEGOLD: data.hasOneBhkGold,
HASTWOGOLD: data.hasTwobhkGold,
HASEXTERIOR: data.hasExterior,
ONESILVERARR: data.oneBhkSilver,
ONEGOLDARR: data.oneBhkGold,
TWOGOLDARR: data.twoBhkGold,
EXTERIORARR: data.exterior,
SILVERLIVING: data.silverLiving,
SILVERBED : data.silverBed ,
SILVERPOOJA : data.silverPooja ,
GOLDLIVING : data.goldLiving ,
GOLDBED : data.goldBed ,
GOLDBED2 : data.goldBed2 ,
GOLDDINING : data.goldDining ,
NORTH : data.north ,
SOUTH : data.south ,
POOL : data.pool ,
HASSILVERLIVING: data.hasSilverliving,
HASSILVERBED : data.hasSilverbed ,
HASSILVERPOOJA : data.hasSilverpooja ,
HASGOLDLIVING : data.hasGoldliving ,
HASGOLDBED : data.hasGoldbed ,
HASGOLDBED2 : data.hasGoldbed2 ,
HASGOLDDINING : data.hasGolddining ,
HASNORTH : data.hasNorth ,
HASSOUTH : data.hasSouth ,
HASPOOL : data.hasPool ,
//THREESIXTY: data.threesixty,
//HASTHREESIXTY: data.hasthreesixty,
}
}, function (error, response) {
if(error){
console.log(error);
}
else{
console.log("email send success");
}
transporter.close();
});
}
}

12
controllers/feedback.js Normal file
View File

@@ -0,0 +1,12 @@
var express = require('express')
, router = express.Router();
var authcheck = require('./authcheck');
router.get('/',authcheck,function(req, res) {
var loggeduserid = req.session.loginuserid;
var loggedusername= req.session.loginusername;
var loggeduserrole= req.session.loginuserrole;
res.render('layout',{layout:'feedback',loggeduserid:loggeduserid,loggedusername:loggedusername,loggeduserrole:loggeduserrole});
});
module.exports = router;

16
controllers/index.js Normal file
View File

@@ -0,0 +1,16 @@
var express = require('express')
, router = express.Router();
router.use('/login' ,require('./login'));
router.use('/logout' ,require('./logout'));
router.use('/api' ,require('./api'));
router.use('/walklist' , require('./walklist'));
router.use('/walkcreation', require('./walkcreation'));
router.use('/banner' , require('./banner'));
router.use('/userlist' , require('./userlist'));
router.use('/feedback' , require('./feedback'));
router.use('/licensing',require('./licensing'))
router.get('/', function(req, res) {
res.redirect('/login');
});
module.exports = router

12
controllers/licensing.js Normal file
View File

@@ -0,0 +1,12 @@
var express = require('express')
, router = express.Router();
var authcheck = require('./authcheck');
router.get('/',authcheck,function(req, res) {
var loggeduserid = req.session.loginuserid;
var loggedusername= req.session.loginusername;
var loggeduserrole= req.session.loginuserrole;
res.render('layout',{layout:'licensing',loggeduserid:loggeduserid,loggedusername:loggedusername,loggeduserrole:loggeduserrole});
});
module.exports = router;

33
controllers/login.js Normal file
View File

@@ -0,0 +1,33 @@
var express = require('express')
router = express.Router();
var rpguser_data = require('../models/rpguserlist');
router.get('/',function(req, res) {
res.render('layout',{layout:'login'});
});
router.post('/login',function(req,res){
var Email = req.body.Email;
var Password= req.body.Password;
rpguser_data.findOne({ Email : Email , Password : Password }).then((result) => {
if(result)
{
console.log(result);
if(result.Userrole = "Admin"){
req.session.loginuserid =result.Userid;
req.session.loginfirstname=result.Firstname;
req.session.loginusername =result.Username;
req.session.loginuserrole =result.Userrole;
req.session.logindatetime=new Date() ;
res.send({msg:"user details found",data:result,Userrole:result.Userrole});
}
else{
res.send({msg:"user not found"});
}
}else{
res.send({msg:"user not found"});
}
});
});
module.exports = router;

13
controllers/logout.js Normal file
View File

@@ -0,0 +1,13 @@
var express = require('express')
, router = express.Router();
router.get('/',function(req, res) {
delete req.session.loginuserid ;
delete req.session.loginfirstname;
delete req.session.loginusername ;
delete req.session.loginuserrole ;
delete req.session.logindatetime ;
res.redirect('/login');
});
module.exports = router;

8
controllers/main.js Normal file
View File

@@ -0,0 +1,8 @@
var express = require('express')
, router = express.Router()
router.get('/',function(req, res) {
res.render('layout',{layout:'main'});
});
module.exports = router;

12
controllers/userlist.js Normal file
View File

@@ -0,0 +1,12 @@
var express = require('express')
, router = express.Router();
var authcheck = require('./authcheck');
router.get('/',authcheck,function(req, res) {
var loggeduserid = req.session.loginuserid;
var loggedusername= req.session.loginusername;
var loggeduserrole= req.session.loginuserrole;
res.render('layout',{layout:'userlist',loggeduserid:loggeduserid,loggedusername:loggedusername,loggeduserrole:loggeduserrole});
});
module.exports = router;

View File

@@ -0,0 +1,12 @@
var express = require('express')
, router = express.Router();
var authcheck = require('./authcheck');
router.get('/',authcheck,function(req, res) {
var loggeduserid = req.session.loginuserid;
var loggedusername= req.session.loginusername;
var loggeduserrole= req.session.loginuserrole;
res.render('layout',{layout:'walkcreation',loggeduserid:loggeduserid,loggedusername:loggedusername,loggeduserrole:loggeduserrole});
});
module.exports = router;

12
controllers/walklist.js Normal file
View File

@@ -0,0 +1,12 @@
var express = require('express')
, router = express.Router();
var authcheck = require('./authcheck');
router.get('/',authcheck,function(req, res) {
var loggeduserid = req.session.loginuserid;
var loggedusername= req.session.loginusername;
var loggeduserrole= req.session.loginuserrole;
res.render('layout',{layout:'walklist',loggeduserid:loggeduserid,loggedusername:loggedusername,loggeduserrole:loggeduserrole});
});
module.exports = router;

311
index.js Normal file
View File

@@ -0,0 +1,311 @@
const express = require('express');
const mongoose = require('mongoose');
var rpguser_data = require('./models/rpguserlist');
var rpgcategory_data = require("./models/rpgcategorylist");
var rpgcategoryuser_data = require("./models/rpgcategoryuserlist");
const fetch = require('node-fetch');
var path = require('path');
var keys = require('./keysfile');
var multer = require('multer');
var fs = require('fs');
const { response } = require('express');
var ACCESS_TOKEN = 'pk.eyJ1IjoiZW5zby1pbW1lcnNpdmUiLCJhIjoiY2toMW01ODE4MTk0NzJxbnZyYzhsMHB1cyJ9.02d-FQX0o80XjwRPNQXzoA';
var client = require('twilio')(keys.twilio.accountSid, keys.twilio.authToken, { lazyLoading: true });
const app = express();
app.use(express.json());
const port = process.env.PORT || 8080;
mongoose.Promise = global.Promise;
mongoose.connect("mongodb://localhost:27017/rpgheritagewalk", {
});
const isNullOrUndefined = (val) => val === null || val === undefined || val === '' || val.length===0;
function randomString(length, chars) {
var result = '';
for (var i = length; i > 0; --i) result += chars[Math.round(Math.random() * (chars.length - 1))];
return result;
};
app.get('/server', function (req, res) {
res.send("Server work");
});
app.post("/addrpgcategory", async function (req, res) {
var Category = req.body.Category;
if (isNullOrUndefined(Category)) {
res.status(409).send({ msg: "Empty Category Found" });
} else {
await new rpgcategory_data({ Category: Category }).save();
res.status(200).send({ msg: "Category added successfully" });
}
});
app.post("/addrpgcategoryuser", async function (req, res) {
var Userid = req.body.Userid;
var Categories = req.body.Categories;
var MapId = req.body.MapId;
var MapName = req.body.MapName;
var Rating = req.body.Rating;
var NoofPOIVisited = req.body.NoofPOIVisited;
var TotalNoOfPOI = req.body.TotalNoOfPOI;
var Language = req.body.Language;
var result = await rpgcategoryuser_data.findOne({ Userid: Userid });
if (isNullOrUndefined(result)) {
await new rpgcategoryuser_data({ Categories: Categories, MapId: MapId, Userid: Userid, MapName: MapName, Rating: Rating, NoofPOIVisited: NoofPOIVisited, TotalNoOfPOI: TotalNoOfPOI, Language: Language }).save();
res.status(200).send({ msg: "Data added successfully" });
}
else {
await rpgcategoryuser_data.updateOne({
$set: {
Categories: Categories,
MapId: MapId,
MapName: MapName,
Rating: Rating,
NoofPOIVisited: NoofPOIVisited,
TotalNoOfPOI: TotalNoOfPOI,
Language: Language
}
});
res.status(200).send({ msg: "Data Updated successfully" });
}
});
app.post('/getuserlocation', async function (req, res) {
var latitude = req.body.latitude;
var longitude = req.body.longitude;
var url = 'https://api.mapbox.com/geocoding/v5/mapbox.places/'
+ longitude + ', ' + latitude
+ '.json?access_token=' + ACCESS_TOKEN;
await fetch(url).then((resp) => {
return resp.json()
}).then((resp) => {
var geoData = resp.features[0].context;
var region, city, postcode;
for (i = 0; i < geoData.length; i++) {
if (geoData[i].id.indexOf('region') >= 0) {
region = geoData[i].text;
}
if (geoData[i].id.indexOf('place') >= 0) {
city = geoData[i].text;
}
if (geoData[i].id.indexOf('postcode') >= 0) {
postcode = geoData[i].text;
}
}
if (isNullOrUndefined(region) && isNullOrUndefined(city)) {
res.status(404).send({ geoData: "Map Detail Not found" });
} else {
res.status(200).send({ geoData: { region, city, postcode } });
}
}).catch((err) => {
res.status(404).send({ geoData: "Map Detail Not found" });
})
})
app.post('/getrpguser', async function (req, res) {
var Email = req.body.Email;
var result = await rpguser_data.findOne({ Email: Email });
var categoryresult = await rpgcategoryuser_data.findOne({ Userid: Email });
if (isNullOrUndefined(result) && isNullOrUndefined(categoryresult)) {
res.status(404).send({ msg: "user not found" });
} else {
res.status(200).send({ msg: "user details found", data: { result, categoryresult } });
}
});
app.get("/categorylist", async function (req, res) {
var Category = await rpgcategory_data.find({}, { Category: 1 });
if (isNullOrUndefined(Category)) {
res.status(404).send({ msg: "No Category Found" });
} else {
res.status(200).send({ Category });
}
});
app.post('/addrpguser', function (req, res) {
var Userid = randomString(10, '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ');
var Firstname = req.body.Firstname;
var Lastname = req.body.Lastname;
var Email = req.body.Email;
var BirthYear = req.body.BirthYear;
var Gender = req.body.Gender;
var DeviceId = req.body.DeviceId;
var Username = Firstname + ' ' + Lastname;
var Userrole = req.body.Userrole;
var Password = req.body.Password;
var ProfilePic = req.body.ProfilePic;
var Language = req.body.Language;
var MobileNo = req.body.MobileNo;
var TotalPoints = '';
var StepsTaken = '';
rpguser_data.findOne({ Userid: Userid }).then((result) => {
if (result) {
Userid = randomString(10, '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ');
}
else {
rpguser_data.findOne({ Email: Email, MobileNo: MobileNo }).then((result) => {
if (result) {
res.send({ msg: "user already exists" });
} else {
new rpguser_data({
Userid: Userid,
Firstname: Firstname,
Lastname: Lastname,
Email: Email,
BirthYear: BirthYear,
Gender: Gender,
DeviceId: DeviceId,
Username: Username,
Userrole: Userrole,
Password: Password,
ProfilePic: ProfilePic,
Language: Language,
MobileNo: MobileNo,
TotalPoints: TotalPoints,
StepsTaken: StepsTaken,
DateofRegistration: new Date()
}).save();
res.send({ msg: "user details added" });
}
});
}
});
});
app.post('/updaterpguserprofile', function (req, res) {
var storage = multer.diskStorage({
destination: function (req, file, cb) {
const storagepath = './public/images/profle';
fs.exists(storagepath, exist => {
if (!exist) {
fs.mkdir(storagepath, { recursive: true }, (err) => {
if (err) {
throw err;
}
else {
return cb(null, storagepath)
}
});
}
else {
return cb(null, storagepath)
}
})
},
filename: function (req, file, cb) {
cb(null, file.originalname);
}
});
var upload = multer({
storage: storage,
fileFilter: (req, file, cb) => {
if (file.mimetype == "image/png" || file.mimetype == "image/gif" || file.mimetype == "image/jpg" || file.mimetype == "image/jpeg") {
cb(null, true);
} else {
cb(null, false);
return cb(new Error('Only .png, .gif, .jpg and .jpeg format allowed!'));
}
},
limits: { fieldSize: 50000000 }
}).single('file');
upload(req, res, async function (err) {
// check for error thrown by multer- file size etc
if (err) {
// An unknown error occurred when uploading.
//console.log("Unknown error occured",err);
res.send({ message: "Unknown error occured", err: err });
}
else {
// Everything went fine.
// var Buffer = req.file;
var file = req.body.file;
if (isNullOrUndefined(file)) {
res.send({ message: "file is not present" });
} else {
var format = req.body.format;
var filename = `${randomString(5, 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ')}.${format}`;
var path = `public/images/profile/${filename}`;
console.log(path);
fs.writeFile(path, file, function (err) {
if (err) throw err;
console.log('Saved!');
});
if (!path) {
//console.log('Please choose a file');
res.send({ message: "Please choose a file" });
} else {
var Userid = req.body.Userid;
var ProfilePic = '';
var newfilename = Userid + '-profilepic';
var securelink = req.hostname == 'localhost' || req.hostname == '127.0.0.1' ? 'http' : 'https';
var urlpath = securelink + '://' + req.get('host');
var filename = filename;
var filenamepath = "public/images/profile/" + filename;
var newfilenamepath = "public/images/UserProfile/" + newfilename + ".jpeg";
var fullnewfilenamepath = urlpath + "/images/UserProfile/" + newfilename + ".jpeg";
ProfilePic = fullnewfilenamepath;
console.log(fullnewfilenamepath);
fs.rename(filenamepath, newfilenamepath, function (err) {
if (err) {
console.log('ERROR: ' + err);
}
else {
rpguser_data.findOneAndUpdate({ Userid: Userid }, {
$set: {
ProfilePic: ProfilePic
}
}).then((result) => {
if (result) {
res.send({ msg: "user profilepic updated", data: result });
}
else {
res.send({ msg: "user profilepic updation failed" });
}
});
}
});
}
}
}
});
});
app.get('/appVersions',async function(req,res){
var appVersion = {
android : "1.0.0",
ios : "1.0.0"
}
res.status(200).send({appVersion});
});
app.listen(port, () => {
console.log(`Server Running on port ${port} `)
})

14
keys.js Normal file
View File

@@ -0,0 +1,14 @@
module.exports = {
google:{
clientID: '288154823643-sqv4i0uk371rfrfqv5snfo6bmhgejs7j.apps.googleusercontent.com',
clientSecret:'1d7ge7W3_iu4SOPC7HV5Kxel',
},
dbconfigs:{
adminsCollection:"admins",
vendorsCollection:"vendors",
customerLikes:"customerLikes",
},
session:{
cookieKey:"dgfjhdsgfjdsgjhghjsdf"
}
};

29
keysfile.js Normal file
View File

@@ -0,0 +1,29 @@
module.exports = {
google:{
clientID: '254253177337-hir9kqg3ovtr104pdu13ohtic8rsuurn.apps.googleusercontent.com',
clientSecret:'6j8jf2hdRHN6_QokDEAs1O7J',
// redirectURL:'https://nerolackansai.co.in/login/google/redirect',
redirectURL:'http://localhost:3000/login/google/redirect',
},
dbconfigs:{
adminsCollection:"admins",
vendorsCollection:"vendors",
customerLikes:"customerLikes",
},
session:{
cookieKey:"dgfjhdsgfjdsgjhghjsdf"
},
emailer:{
user: 'support@ensoimmersive.com',
pass: 'Teamens0',
},
admin:{
name:'NerolacAdmin',
password:'abcd@1234',
},
twilio:{
accountSid:'AC566d5a438d076678df24a050c9283105',
//authToken :'cd1df612b5e38b92ba330d49e3a48bfc',
authToken :'5e0b1ced7a6de98f9d49056357ca1aae'
}
};

30
models/adminmodel.js Normal file
View File

@@ -0,0 +1,30 @@
const mongoose = require('mongoose');
const Schema = mongoose.Schema;
const adminSchema = new Schema({
username:String,
googleId:String,
email:String
});
const Admin = mongoose.model('admin', adminSchema);
//create a default admin if no user exists
Admin.findOne({email:'harprasad@ensoimmersive.com'},function(err,currentUser){
if(err){
console.log(err);
return;
}
if(currentUser){
//do nothing if user exists
}else{
new Admin({
username:"harprasad",
email:"harprasad@ensoimmersive.com",
googleId:"nana",
}).save();
}
});
module.exports = Admin;

14
models/bannermodel.js Normal file
View File

@@ -0,0 +1,14 @@
const mongoose = require('mongoose');
const Schema = mongoose.Schema;
const BannerSchema = new Schema({
location_name: String,
image: String,
created_at: {
type: Date,
default: Date.now
}
}, { versionKey: false });
const Banner = mongoose.model('banner', BannerSchema);
module.exports = Banner;

75
models/customerdata.js Normal file
View File

@@ -0,0 +1,75 @@
const mongoose = require('mongoose');
const Schema = mongoose.Schema;
const customerDataSchema = new Schema({
DateofRegistration:Date,
vendorname:String,
vendorid:String,
vendornumber:String,
customername:String,
gender:String,
email:String,
number:String,
likedcolors:[String],
likedshadecode:[String],
likednames:[String],
selectedcolors:[String],
onebhksilver:[String],
onebhkgold:[String],
twobhkgold:[String],
exterior:[String],
SilverBedhexs :[String],
SilverBednames :[String],
SilverBedshades :[String],
SilverLivinghexs :[String],
SilverLivingnames :[String],
SilverLivingshades:[String],
SilverPoojahexs :[String],
SilverPoojanames :[String],
SilverPoojashades :[String],
GoldLivinghexs :[String],
GoldLivingnames :[String],
GoldLivingshades :[String],
GoldBedhexs :[String],
GoldBednames :[String],
GoldBedshades :[String],
GoldBed2hexs :[String],
GoldBed2names :[String],
GoldBed2shades :[String],
GoldDininghexs :[String],
GoldDiningnames :[String],
GoldDiningshades :[String],
Northhexs :[String],
Northnames :[String],
Northshades :[String],
Southhexs :[String],
Southnames :[String],
Southshades :[String],
Poolhexs :[String],
Poolnames :[String],
Poolshades :[String],
threesixty:[String],
city:String,
state:String,
time:String,
selected:Number,
sessiontime:Number,
});
const CustomerEntry = mongoose.model('customerdata', customerDataSchema);
// for(var i = 0 ; i < 10 ; i++){
// new CustomerEntry({
// customername:"HP",
// email:"harprasad@ensoimmersive.com",
// number:"9040437295",
// location:"-15.623028, 15.388667",
// gender:"Male",
// likedcolors:['#FFB0BB','#BBAABB','#FFAABB'],
// vendorname:"vickey",
// vendornumber:"8585446520",
// vendorid:"GHFGII786567557454",
// DateofRegistration:new Date(),
// }).save();
// }
module.exports = CustomerEntry;

View File

@@ -0,0 +1,16 @@
const mongoose = require('mongoose');
const Schema = mongoose.Schema;
const GuestToggleSchema = new Schema({
status: {
type: Boolean,
default: false
},
created_at: {
type: Date,
default: Date.now
}
}, { versionKey: false });
const GuestToggle = mongoose.model('GuestToggle', GuestToggleSchema);
module.exports = GuestToggle;

51
models/guidedwalkmodel.js Normal file
View File

@@ -0,0 +1,51 @@
const mongoose = require('mongoose');
const Schema = mongoose.Schema;
const addressSchema = new Schema(
{
address: { type: String },
longitude: { type: String },
latitude: { type: String },
},
{ _id: false }
);
const GuidedWalkBookingSchema = new Schema({
time_slot: Date,
members_count: String,
booker_first_name: String,
booker_last_name: String,
email: String,
date: String,
pan_card: String,
start: String,
end: String,
telephone_number: String,
walk_id: {
type: mongoose.Schema.Types.ObjectId,
ref: 'rpgwalklist'
},
user_id: {
type: mongoose.Schema.Types.ObjectId,
ref: 'rpguserlist'
},
walk_address: String,
pickup_location: addressSchema,
amount: Number,
duration: String,
order_id: String,
payment_id: String,
ticket_pdf: String,
is_paid: {
type: Boolean,
default: false
},
created_at: {
type: Date,
default: Date.now
}
}, { versionKey: false });
const GuidedWalkBooking = mongoose.model('GuidedWalkBooking', GuidedWalkBookingSchema);
module.exports = GuidedWalkBooking;

12
models/licensingmodel.js Normal file
View File

@@ -0,0 +1,12 @@
const mongoose = require('mongoose');
const Schema = mongoose.Schema;
const rpgLicensingSchema = new Schema({
toggleid:String,
togglename:String,
togglestatus:Number,
});
const newRpglicensing = mongoose.model('rpglicensing', rpgLicensingSchema);
module.exports = newRpglicensing;

11
models/rpgcategorylist.js Normal file
View File

@@ -0,0 +1,11 @@
const mongoose = require('mongoose');
const Schema = mongoose.Schema;
const rpgcategorySchema = new Schema({
Category :{type:[String]},
code : Number,
});
const newRpgcategory = mongoose.model('rpgcategory', rpgcategorySchema);
module.exports = newRpgcategory;

View File

@@ -0,0 +1,18 @@
const mongoose = require('mongoose');
const Schema = mongoose.Schema;
const rpgcategoryuserSchema = new Schema({
Userid :String,
MapId: String,
MapName : String,
Rating : String,
NoofPOIVisited : String,
TotalNoOfPOI : String,
Map_Thumbnail:String,
Language : String,
Categories : String,
POI_TimeTaken : String,
});
const newRpgcategoryuser = mongoose.model('rpgcategoryuser', rpgcategoryuserSchema);
module.exports = newRpgcategoryuser;

View File

@@ -0,0 +1,33 @@
const mongoose = require('mongoose');
const Schema = mongoose.Schema;
const rpgquestionSchema = new Schema({
MapQuestions : [
{
MapQuestion_ID: String,
Question: String,
Rating:String,
Feedback_Map : String,
}
],
AppQuestions : [
{
AppQuestion_ID: String,
Question: String,
Rating:String,
Feedback_App : String,
}
],
id: String,
});
const newRpgquestion = mongoose.model('rpgratingquestion', rpgquestionSchema);
module.exports = newRpgquestion;

View File

@@ -0,0 +1,20 @@
const mongoose = require('mongoose');
const Schema = mongoose.Schema;
const rpguserappratingSchema = new Schema({
UserID :String,
AppQuestions:
[
{
AppQuestion_ID: String,
Question: String,
Rating:String,
Feedback_App : String,
}
],
});
const newRpguserapprating = mongoose.model('rpguserapprating', rpguserappratingSchema);
module.exports = newRpguserapprating;

55
models/rpguserlist.js Normal file
View File

@@ -0,0 +1,55 @@
const mongoose = require('mongoose');
const Schema = mongoose.Schema;
const rpguserlistSchema = new Schema({
Userid: String,
Firstname: String,
Lastname: String,
Email: String,
BirthYear: String,
Gender: String,
Username: String,
Userrole: String,
Password: String,
ProfilePic: String,
Categories: Array,
Language: String,
DeviceID: String,
Platform: String,
MobileNo: String,
MobileOTP: Number,
TotalPoints: String,
StepsTaken: String,
AppFeedback: String,
AppRating: Number,
client_id: String,
client_secret: String,
refresh_token: String,
access_token: String,
WalkDetails: [
{
Map_ID: String,
Map_Feedback: String,
Map_StartTime: String,
Map_Endtime: String,
Map_Status: String,
Map_Rating: Number,
Current_POI: Number,
Distance_Travelled: Number,
POI_Data: [
{
POI_ID: String,
AmbleFeedback: String,
AmbleStartTime: String,
AmbleEndtime: String,
AmbleStatus: String,
AmbleRating: Number
}
]
}
],
DateofRegistration: Date
});
const newRpguserlistEntry = mongoose.model('rpguserlist', rpguserlistSchema);
module.exports = newRpguserlistEntry;

View File

@@ -0,0 +1,23 @@
const mongoose = require('mongoose');
const Schema = mongoose.Schema;
const rpgusermapratingSchema = new Schema({
Map_ID : String,
UserID :String,
MapName:String,
MapQuestions :
[
{
MapQuestion_ID: String,
Question: String,
Rating:String,
Feedback_Map : String,
}
],
});
const newRpgusermaprating = mongoose.model('rpgusermaprating', rpgusermapratingSchema);
module.exports = newRpgusermaprating;

11
models/rpgwalkcategory.js Normal file
View File

@@ -0,0 +1,11 @@
const mongoose = require('mongoose');
const Schema = mongoose.Schema;
const rpgwalkcategorySchema = new Schema({
Category_Name :String,
Category_Value :String,
DateofRegistration:Date
});
const newRpgwalkcategoryEntry = mongoose.model('rpgwalkcategory', rpgwalkcategorySchema);
module.exports = newRpgwalkcategoryEntry;

79
models/rpgwalklist.js Normal file
View File

@@ -0,0 +1,79 @@
const mongoose = require('mongoose');
const Schema = mongoose.Schema;
const TimeSlotsSchema = new Schema(
{
Date: String,
Time_Slots: [String],
},
{ _id: false }
);
const rpgwalklistSchema = new Schema({
Map_ID: String,
Map_Name: String,
Map_Description: String,
Trivia_List: [
{
Trivia_ID: String,
Trivia: String
}
],
Map_Thumbnail_URL: String,
Map_Status: String,
Map_Type: String,
Map_Category: [String],
Map_Rating: Number,
Map_Startlongitude: Number,
Map_Startlatitude: Number,
Map_Version: Number,
Sort_Number: Number,
Walk_Type: String,
Amount_Per_Person: Number,
Maximum_Persons_Allowed: Number,
Walk_Duration: Number,
Total_POI: Number,
TotalWalkDistance: String,
ArScene_AB_Url: String,
ArPoi: String,
AssetBundle_Name: String,
AssetBundle_IOS_Name: String,
PeriscopeARScene_Name: String,
PeriscopeARScene_URL: String,
PeriscopeARScene_IOS_URL: String,
ArScene_AB_IOS_Url: String,
Map_Ratting: String,
Map_Zip_Url: String,
Total_Trivia: String,
Dates: [TimeSlotsSchema],
Map_Polycoords: [
{
lng: Number,
lat: Number
}
],
POI_List: [
{
POI_ID: String,
POI_Number: Number,
POI_Name: String,
POI_Address: String,
POI_Description: String,
POI_Type: String,
POI_Thumbnail_URL: Array,
POI_Status: String,
POI_Content_Type: String,
POI_Content_URL: String,
POI_Trigger_Area: Number,
Latitude: Number,
Longitude: Number
}
],
DateofRegistration: Date,
});
// rpgwalklistSchema.index({ Map_Startlongitude: '2dsphere', Map_Startlatitude: '2dsphere' });
const newRpgwalklistEntry = mongoose.model('rpgwalklist', rpgwalklistSchema);
module.exports = newRpgwalklistEntry;

15
models/userratingmodel.js Normal file
View File

@@ -0,0 +1,15 @@
const mongoose = require('mongoose');
const Schema = mongoose.Schema;
const UserFeedBackSchema = new Schema({
User_Id: {
type: mongoose.Schema.Types.ObjectId,
ref: 'rpguserlist'
},
Description: String,
Rating: Number,
});
const UserFeedback = mongoose.model('user-feedback', UserFeedBackSchema);
module.exports = UserFeedback;

114
nginx_content Normal file
View File

@@ -0,0 +1,114 @@
##
# You should look at the following URL's in order to grasp a solid understanding
# of Nginx configuration files in order to fully unleash the power of Nginx.
# http://wiki.nginx.org/Pitfalls
# http://wiki.nginx.org/QuickStart
# http://wiki.nginx.org/Configuration
#
# Generally, you will want to move this file somewhere, and start with a clean
# file but keep this around for reference. Or just disable in sites-enabled.
#
# Please see /usr/share/doc/nginx-doc/examples/ for more detailed examples.
##
# Default server configuration
#
server {
# listen 80 default_server;
# listen [::]:80 default_server;
# SSL configuration
#
listen 443 ssl default_server;
listen [::]:443 ssl default_server;
#
# Note: You should disable gzip for SSL traffic.
# See: https://bugs.debian.org/773332
#
# Read up on ssl_ciphers to ensure a secure configuration.
# See: https://bugs.debian.org/765782
#
# Self signed certs generated by the ssl-cert package
# Don't use them in a production server!
#
# include snippets/snakeoil.conf;
root /var/www/html;
# Add index.php to the list if you are using PHP
index index.html index.htm index.nginx-debian.html;
server_name www.sparkprogress.com;
ssl_certificate /home/ensoim/sparkprogress_www.crt;
ssl_certificate_key /home/ensoim/sparkprogress_www.key;
#ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
#ssl_prefer_server_ciphers on;
#ssl_ciphers 'EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH';
location / {
# First attempt to serve request as file, then
# as directory, then fall back to displaying a 404.
#try_files $uri $uri/ =404;
proxy_pass http://localhost:82;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection 'upgrade';
proxy_set_header Host $host;
proxy_cache_bypass $http_upgrade;
}
location /staging/ {
rewrite ^/staging/(.*)$ /$1 break;
proxy_http_version 1.1;
proxy_cache_bypass $http_upgrade;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection 'upgrade';
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_pass http://localhost:81;
}
# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
#
#location ~ \.php$ {
# include snippets/fastcgi-php.conf;
#
# # With php7.0-cgi alone:
# fastcgi_pass 127.0.0.1:9000;
# # With php7.0-fpm:
# fastcgi_pass unix:/run/php/php7.0-fpm.sock;
#}
# deny access to .htaccess files, if Apache's document root
# concurs with nginx's one
#
#location ~ /\.ht {
# deny all;
#}
}
# Virtual Host configuration for example.com
#
# You can move that to a different file under sites-available/ and symlink that
# to sites-enabled/ to enable it.
#
server {
listen 80;
listen [::]:80;
server_name www.sparkprogress.me;
rewrite ^/(.*) https://www.sparkprogress.me/$1 permanent;
# root /var/www/example.com;
# index index.html;
# location / {
# try_files $uri $uri/ =404;
# }
}

11659
package-lock.json generated Normal file

File diff suppressed because it is too large Load Diff

69
package.json Normal file
View File

@@ -0,0 +1,69 @@
{
"name": "rpgwalk",
"version": "1.0.0",
"description": "rpgwalk project",
"main": "app3.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1",
"start": "node index.js",
"home": "node app3.js",
"serve": "nodemon app3.js"
},
"author": "Pavankumar",
"license": "ISC",
"dependencies": {
"apple-client-secret-generator": "^1.0.3",
"apple-sign-in-rest": "^1.0.3",
"apple-signin": "^1.0.9",
"apple-signin-auth": "^1.7.4",
"aws-sdk": "^2.1032.0",
"base64-to-image": "^1.0.2",
"bigdatacloud-reverse-geocoding": "^0.2.0",
"body-parser": "^1.18.2",
"cookie-session": "^2.0.0-rc.1",
"cors": "^2.8.5",
"dotenv": "^16.4.1",
"express": "^4.18.2",
"express-handlebars": "^3.0.0",
"express-session": "^1.15.6",
"file-base64": "^1.0.0",
"form-data": "^4.0.0",
"image-size": "^1.1.1",
"jquery": "^3.3.1",
"jQuery": "^1.7.4",
"jsdom": "^11.11.0",
"json2csv": "^4.3.3",
"jsonwebtoken": "^8.5.1",
"knockout.decimal": "^2.0.0",
"lodash": "^4.17.10",
"lodash.keys": "^4.2.0",
"mapbox": "^1.0.0-beta10",
"mapbox-geocoding": "^0.1.5",
"mongodb": "^4.6.0",
"mongoose": "^5.0.18",
"mongoose-to-csv": "^0.1.1",
"multer": "^1.4.1",
"nexmo": "^2.3.2",
"node-cron": "^2.0.3",
"node-fetch": "^2.6.1",
"node-geocoder": "^3.27.0",
"node-modules": "^1.0.1",
"nodemailer": "^4.6.8",
"nodemailer-express-handlebars": "^3.0.0",
"nodemailer-mailgun-transport": "^1.4.0",
"nodemon": "^3.0.3",
"passport": "^0.4.0",
"passport-google-oauth": "^1.0.0",
"passport-google-oauth20": "^1.0.0",
"pm2": "^5.1.2",
"puppeteer": "^22.6.2",
"razorpay": "^2.9.3",
"request": "^2.88.2",
"rimraf": "^3.0.2",
"socket.io": "^2.1.1",
"stream": "0.0.2",
"twilio": "^3.22.0",
"validator": "^10.1.0",
"zip-local": "^0.3.4"
}
}

View File

@@ -0,0 +1,6 @@
-----BEGIN PRIVATE KEY-----
MIGTAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBHkwdwIBAQQg4kyDzDnbWyQEBn4m
AJvWRFvBgbJRnNHuHF27dTkPg1KgCgYIKoZIzj0DAQehRANCAASQzpJflSZCqplz
683edWn4AI9bDBb1w6AQmk0ZzBZhw0PFbvWMcyiiZe0L+6kDUEmG9rQAnX0hIhmH
zZQy8wsh
-----END PRIVATE KEY-----

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@@ -0,0 +1 @@
{"Map_Category":["History"],"_id":"6740541c621bec6e1fe0be4e","Map_ID":"1611400803","Map_Name":"BPT Heritage Walk","Trivia_List":[],"Map_Description":"Mumbai originally consisted of seven islands: Mumbai, Mazagaon, Parel, Worli, Mahim, Old Woman's Island, and Colaba. Over time, these islands merged into the bustling city. Mazagaon became residential, Parel turned industrial, Worli became commercial, Mahim developed a diverse community, Old Woman's Island was reclaimed, and Colaba emerged as a key business district. The Fort area, once home to a British-built fort from 1716, was demolished in the 1860s. Today, the area is known for its historic buildings made from local stones and is a protected precinct to preserve its heritage. Ballard Estate, developed between 1908 and 1914, transformed into a commercial hub through land reclamation. Featuring European Renaissance-style architecture, it reflects Mumbais early 20th-century commercial growth and sophisticated urban planning.","Map_Thumbnail_URL":"https://production-amble.s3.ap-south-1.amazonaws.com//Database/MapPoiContent/1611400803/Image/1732269084700.jpg","Map_Status":"UnPublished","Map_Type":"test","Total_POI":15,"Sort_Number":22,"Walk_Type":"Self-Paced Walk","Amount_Per_Person":null,"Maximum_Persons_Allowed":null,"Dates":[],"Map_Version":53,"Map_Startlongitude":72.8382571172623,"Map_Startlatitude":18.934259760992415,"Map_Polycoords":[],"Map_Zip_Url":"http://amble.theheritageproject.in/Database/MapPoiContent/1611400803.zip","Total_Trivia":"15","Map_Ratting":"0","DateofRegistration":"2024-11-22T09:51:24.886Z","POI_List":[],"__v":0}

Binary file not shown.

Binary file not shown.

View File

@@ -0,0 +1 @@
{"Map_Category":["Architecture"],"_id":"660169e346b38018fe17101f","Map_ID":"1704424320","Map_Name":"test mine","Trivia_List":[],"Map_Description":"dnkwndkwnkdw","Map_Thumbnail_URL":"test","Map_Status":"UnPublished","Map_Type":"test","Total_POI":4,"Sort_Number":1,"Walk_Type":"Guided Walk","Amount_Per_Person":100,"Maximum_Persons_Allowed":6,"Map_Version":49,"Map_Startlongitude":72,"Map_Startlatitude":11,"Map_Polycoords":[],"Map_Zip_Url":"http://localhost:8080/Database/MapPoiContent/1704424320.zip","Total_Trivia":"4","Map_Ratting":"0","DateofRegistration":"2024-03-25T12:11:15.035Z","POI_List":[],"__v":0}

Binary file not shown.

After

Width:  |  Height:  |  Size: 101 KiB

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 223 KiB

Binary file not shown.

File diff suppressed because one or more lines are too long

Binary file not shown.

Binary file not shown.

File diff suppressed because one or more lines are too long

Binary file not shown.

File diff suppressed because one or more lines are too long

Binary file not shown.

View File

@@ -0,0 +1 @@
{"Map_Category":["Architecture"],"_id":"6799fcfe621bec6e1fe0c608","Map_ID":"1867666395","Map_Name":"Bora Bazaar","Trivia_List":[],"Map_Description":"Bombay, now Mumbai, began as seven distinct islands, home to the Koli and Bhandari communities who thrived on fishing and coastal trade. •\tThese islands were significant trading points, with regions like Sopara and Chaul serving as early maritime hubs even before European colonizers arrived. •\tThe Portuguese arrived in 1561, marking the first wave of European influence on the islands trade and culture. •\tIn 1661, the British took over, aiming to transform Bombay into a major trading port, setting the stage for its growth as a commercial center.","Map_Thumbnail_URL":"https://production-amble.s3.ap-south-1.amazonaws.com//Database/MapPoiContent/1867666395/Image/1738145022509.jpg","Map_Status":"UnPublished","Map_Type":"test","Total_POI":24,"Sort_Number":6,"Walk_Type":"Self-Paced Walk","Amount_Per_Person":null,"Maximum_Persons_Allowed":null,"Dates":[],"Map_Version":55,"Map_Startlongitude":72.83527444390009,"Map_Startlatitude":18.93496919676392,"Map_Polycoords":[],"Map_Zip_Url":"http://amble.theheritageproject.in/Database/MapPoiContent/1867666395.zip","Total_Trivia":"17","Map_Ratting":"0","DateofRegistration":"2025-01-29T10:03:42.713Z","POI_List":[],"__v":0}

Binary file not shown.

View File

@@ -0,0 +1 @@
{"Map_Category":["Arts and Culture,Architecture,UNESCO World Heritage Sites"],"_id":"65cdd2d01f4c321f972fb9a3","Map_ID":"1923177346","Map_Name":"Wyatt Hendrix","Trivia_List":[],"Map_Description":"Elit et optio prov","Map_Thumbnail_URL":"https://development-amble.s3.ap-south-1.amazonaws.com//Database/MapPoiContent/1923177346/Image/1707987664181_Bard_Generated_Image.jpeg","Map_Status":"UnPublished","Map_Type":"test","Total_POI":4,"Sort_Number":4,"Map_Version":48,"Map_Startlongitude":72,"Map_Startlatitude":80,"Map_Polycoords":[],"Map_Zip_Url":"http://localhost:8080/Database/MapPoiContent/1923177346.zip","Total_Trivia":"4","Map_Ratting":"0","DateofRegistration":"2024-02-15T09:01:04.925Z","POI_List":[{"POI_Thumbnail_URL":["https://development-amble.s3.ap-south-1.amazonaws.com/Database/MapPoiContent/POIImage/1708320579194.png","https://development-amble.s3.ap-south-1.amazonaws.com/Database/MapPoiContent/POIImage/1708320596205.jpeg","https://development-amble.s3.ap-south-1.amazonaws.com/Database/MapPoiContent/POIImage/1708320596713.jpg","https://development-amble.s3.ap-south-1.amazonaws.com/Database/MapPoiContent/POIImage/1708320597242.jpg"],"_id":"65cdd30c1f4c321f972fb9ae","POI_ID":"poi0","POI_Name":"first time all image","POI_Description":"test","POI_Type":"Poi","POI_Number":0,"POI_Status":"Published","POI_Content_Type":"audio","POI_Content_URL":"https://development-amble.s3.ap-south-1.amazonaws.com//Database/MapPoiContent/POIAudio/1707987722478_file_example_MP3_700KB.mp3","POI_Trigger_Area":1,"Latitude":11,"Longitude":11},{"POI_Thumbnail_URL":["https://development-amble.s3.ap-south-1.amazonaws.com/Database/MapPoiContent/POIImage/1707992055371_1707745819581_598898.jpg","https://development-amble.s3.ap-south-1.amazonaws.com/Database/MapPoiContent/POIImage/1707992088349_Bard_Generated_Image.jpeg","https://development-amble.s3.ap-south-1.amazonaws.com/Database/MapPoiContent/POIImage/1707992088748_643ba7a7af006d82d55e8d1b181c9c4c.jpg"],"_id":"65cddea8589b8322d60274ca","POI_ID":"poi1","POI_Name":"Test2","POI_Description":"Tewstuibgf","POI_Type":"Poi","POI_Number":1,"POI_Status":"Published","POI_Content_Type":"audio","POI_Content_URL":"https://development-amble.s3.ap-south-1.amazonaws.com//Database/MapPoiContent/POIAudio/1707990693121_file_example_MP3_700KB.mp3","POI_Trigger_Area":1,"Latitude":11,"Longitude":11.2},{"POI_Thumbnail_URL":["https://development-amble.s3.ap-south-1.amazonaws.com/Database/MapPoiContent/POIImage/1707992207550_1707982147701_1707980174953_1.%20JB%20Petit.jpg","https://development-amble.s3.ap-south-1.amazonaws.com/Database/MapPoiContent/POIImage/1707993209923_643ba7a7af006d82d55e8d1b181c9c4c.jpg"],"_id":"65cde47a589b8322d60274f8","POI_ID":"poi2","POI_Name":"Test r","POI_Description":"Testrignfdg e dgfd gdfgfd gfd","POI_Type":"Poi","POI_Number":2,"POI_Status":"Published","POI_Content_Type":"audio","POI_Content_URL":"https://development-amble.s3.ap-south-1.amazonaws.com//Database/MapPoiContent/POIAudio/1707992185633_file_example_MP3_700KB.mp3","POI_Trigger_Area":1,"Latitude":12.2,"Longitude":12.6},{"POI_Thumbnail_URL":[],"_id":"65cdefef68c8fc31b7c98845","POI_ID":"poi3","POI_Name":"wnwkws","POI_Description":"wdwdwdswd","POI_Type":"Poi","POI_Number":3,"POI_Status":"Published","POI_Content_Type":"audio","POI_Content_URL":"https://development-amble.s3.ap-south-1.amazonaws.com//Database/MapPoiContent/POIAudio/1707995118740.mp3","POI_Trigger_Area":1,"Latitude":11,"Longitude":11}],"__v":2,"Walk_type":"Self-Paced Walk","Amount_Per_Person":5,"Maximum_Persons_Allowed":6,"Walk_Type":"Guided Walk"}

Binary file not shown.

File diff suppressed because one or more lines are too long

Binary file not shown.

Binary file not shown.

Binary file not shown.

File diff suppressed because one or more lines are too long

Binary file not shown.

After

Width:  |  Height:  |  Size: 544 KiB

Binary file not shown.

Binary file not shown.

View File

@@ -0,0 +1 @@
{"Map_Category":["Architecture"],"_id":"67cc4a66621bec6e1fe0c9b4","Map_ID":"2088649036","Map_Name":"Testing amble","Trivia_List":[],"Map_Description":"rpg location ","Map_Thumbnail_URL":"https://production-amble.s3.ap-south-1.amazonaws.com//Database/MapPoiContent/2088649036/Image/1741441638160.jpg","Map_Status":"UnPublished","Map_Type":"test","Total_POI":6,"Sort_Number":5,"Walk_Type":"Self-Paced Walk","Amount_Per_Person":null,"Maximum_Persons_Allowed":null,"Dates":[],"Map_Version":56,"Map_Startlongitude":72.82124387939118,"Map_Startlatitude":19.01139544857203,"Map_Polycoords":[],"Map_Zip_Url":"http://amble.theheritageproject.in/Database/MapPoiContent/2088649036.zip","Total_Trivia":"5","Map_Ratting":"0","DateofRegistration":"2025-03-08T13:47:18.353Z","POI_List":[],"__v":0}

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@@ -0,0 +1 @@
{"Map_Category":["Arts and Culture"],"_id":"66c41a7cfb9167f056413364","Map_ID":"2211067092","Map_Name":"Test Walk Resume","Trivia_List":[],"Map_Description":"Resume from where we left","Map_Thumbnail_URL":"https://production-amble.s3.ap-south-1.amazonaws.com//Database/MapPoiContent/2211067092/Image/1724127868852.jpg","Map_Status":"UnPublished","Map_Type":"test","Total_POI":3,"Sort_Number":35,"Walk_Type":"Self-Paced Walk","Amount_Per_Person":null,"Maximum_Persons_Allowed":null,"Dates":[],"Map_Version":50,"Map_Startlongitude":76.98575,"Map_Startlatitude":11.04447,"Map_Polycoords":[],"Map_Zip_Url":"http://amble.theheritageproject.in/Database/MapPoiContent/2211067092.zip","Total_Trivia":"3","Map_Ratting":"0","DateofRegistration":"2024-08-20T04:24:28.985Z","POI_List":[],"__v":0}

Binary file not shown.

Binary file not shown.

Some files were not shown because too many files have changed in this diff Show More