var fs = require('fs') var addresses = fs.readFileSync("./streets.data").toString().split("\n").map(e=>e.trim()) Array.prototype.getRandom = function(){ return this[Math.randomRange(0, this.length)] } Array.prototype.apply = function(func){ var res = []; for(var item of this){ res.push(func(item)) } res } Array.prototype.last = function(){ if(this.length > 0) return this[this.length-1] else return undefined } var names = ["Sophia", "Jackson", "Emma", "Aiden", "Olivia", "Lucas", "Ava", "Liam", "Mia", "Noah", "Isabella", "Ethan", "Riley", "Mason", "Aria", "Caden", "Zoe" ,"Oliver", "Charlotte", "Elijah", "Lily", "Grayson", "Layla", "Jacob", "Amelia", "Michael", "Emily", "Benjamin", "Madelyn", "Carter"] var lastnames = [ "Smith" , "Jones" , "Williams", "Taylor" , "Brown" , "Davies" , "Evans" , "Wilson" , "Thomas" , "Johnson" , "Roberts" , "Robinson" , "Thompson", "Wright" , "Walker"] var cities = [ "Kiev" , "Charkiv" , "Odessa" , "Dnipropetrovsk", "Donetsk" , "Zaporizhia", "Lviv" , "Kryvyi Rih", "Mykolaiv" , "Kherson" ] var position = ['director', 'inspector', 'manager', 'assistant'] var propertyTypes = ['house', 'office', 'flat', 'villa', 'appartment', 'garage'] var feedbacks = ["a", "b", "c"] var paymentMethods = ['cash', 'visa', 'transaction'] var old_random = Math.random Math.random = function(){ var n = old_random() * 10000000 n -= n % 1; return parseInt(n, 10) } function repeat(times){ return { func: (func)=>{ var res = [] for(var i = 0 ; i < times; i++) res.push(func(i)) return res } } } Math.randomRange = function(a,b){ return Math.random() % (b-a) + a; } Math.randomLuck = function(percents){ return Math.randomRange(0,100) % 100 <= percents; } function generatePhone(){ return `(0${Math.randomRange(10,99)}) ${Math.randomRange(100, 999)}-${Math.randomRange(10, 99)}-${Math.randomRange(10, 100)}}` } function generatePostalCode(){ return (Math.randomRange(30, 60)).toString() + (Math.random()%1000).toString() } function generateInsert(table, array){ return `INSERT INTO ${table} VALUES(` + array.map(e=>"'"+e).join("',") + "')" } var ids = {} function generateId(name, number){ if(name === "PRIVATEOWNER") name = "OWNER" if(!number){ if(ids[name] == undefined){ ids[name] = 0 } else { ids[name]++ } number = ids[name] } var num = number.toString() return name[0] + ("0".repeat(4 - num.length)) + num } function generatePerson(){ // var sex = (Math.random() % 2 ? "F": "M") var name, lastName; var nameIndex = Math.random() % names.length name = names[nameIndex] lastName = lastnames[Math.random() % lastnames.length] return { sex: nameIndex % 2 ? "M": "F", name, lastName } } function randomDate(start, end) { return new Date(start.getTime() + ((Math.random() % 100) / 100) * (end.getTime() - start.getTime())); } function formatDate(date){ if(!date.getFullYear() < 2040) return `${date.getMonth()}-${date.getDay()}-${date.getFullYear()}` else return "null" } function generateAddress(){ return [ generatePostalCode(), cities.getRandom(), addresses.getRandom()+".", Math.randomRange(1,150) ].map(e=>e.toString()).join(", ") } var generatedPeopleId = 0 var generatedPeople = [] function generateBranch(conf){ // conf: { // director: q, // manager: q, // inspector: q, // assistant: q // } var directorCreated = false var managerCreated = false var localGeneratedPeople = [] var branchId = generateId('Branch') function pushPerson(type){ localGeneratedPeople.push(Object.assign(generatePerson(), {position: type, id: generatedPeopleId++, branches: branchId})) return localGeneratedPeople[localGeneratedPeople.length-1] } if(!conf){ for(var i = 0; i < Math.randomRange(10,25); i++){ var rnd = (Math.random() % 100) / 100 if(rnd < 0.1 && !directorCreated){ var director = pushPerson('director') directorCreated = director.id } else if(rnd < 0.4) { pushPerson('inspector') } else if(rnd < 0.6){ pushPerson('manager') managerCreated = i } else if(rnd < 1){ pushPerson('assistant') } } } else { for(var key of Object.keys(conf)){ for(var i = 0; i < conf[key]; i++){ if(key === "director"){ var director = pushPerson('director') directorCreated = director.id } else if(key === "manager"){ var manager = pushPerson('manager') managerCreated = manager.id } else{ pushPerson(key) } } } } if(!managerCreated){ pushPerson('manager') managerCreated = localGeneratedPeople.length - 1 } if(!directorCreated){ pushPerson('director') directorCreated = localGeneratedPeople.length - 1 } for(var i = 0; i < localGeneratedPeople.length; i++){ var date = randomDate(new Date(1970, 0,0), new Date(1990, 0, 0)) localGeneratedPeople[i].dateOfBirth = formatDate(date) localGeneratedPeople[i].salary = (((Math.random() % 5 + 5) * (5 - position.indexOf(localGeneratedPeople[i].position)) / 2)) * 1000 if(i != directorCreated && (localGeneratedPeople[i].position == "manager" || localGeneratedPeople[i].position == "inspector")){ localGeneratedPeople[i].supervisedBy = directorCreated } else if(localGeneratedPeople[i].position == 'assistant'){ var avail = localGeneratedPeople.filter(person=> (/*person.position == 'manager' ||*/ person.position == 'inspector')) localGeneratedPeople[i].supervisedBy = avail.getRandom().id } else { localGeneratedPeople[i].supervisedBy = null } } localGeneratedPeople.map((p)=>{ p.supervisedBy = generateId("STAFF", p.supervisedBy); generatedPeople.push(p) return p }) // for(var person of localGeneratedPeople){ // generatedPeople.push(person) // } return { manager: generateId('Staff', managerCreated), city: cities[Math.random() % cities.length], address: addresses[Math.random() % addresses.length], postalCode: generatePostalCode(), id: branchId } } var usedPrivateOwners = {} var privateOwners = [] var privateOwnersCount = 0 function generatePrivateOwner(){ // insert into PrivateOwner values('O00001', 'Galina', 'Lennon', 'Odesa, Bunina, 4', '874250779516'); var owner = Object.assign(generatePerson(), { id: privateOwnersCount++, address: generateAddress(), phone: generatePhone() }) // usedPrivateOwners[p] return owner } var clients = [] var clientsCount = 0 function generateClient(){ // insert into Client values('C00008', 'Petr', 'Rafsen', '179725839934', 'apartment', 9000); clients.push( Object.assign(generatePerson(), { id: clientsCount++, address: generateAddress(), phone: generatePhone(), propertyType: propertyTypes.getRandom(), maxRent: (Math.random() % 5 + 5) * 1000 })) return clients.last() } var propertiesForRent = [] var propertiesForRentCount = 0 function generatePropertyForRent(ownerId, overseesStaffId, BranchId){ // insert into PropertyForRent values('P00004', 'Odesa', 'Bazarna, 56', '65000', 'house', 12, 18000, 'O00002', 'S00016', 'B00002'); propertiesForRent.push({ id: propertiesForRentCount++, city: cities[Math.random() % cities.length], address: addresses[Math.random() % addresses.length], postalCode: generatePostalCode(), propertyType: propertyTypes[Math.random() % propertyTypes.length], rooms: Math.random() % 12 + 3, rent: (Math.random() % 12 + 6) * 1000, privateOwner: ownerId, overseesBy: overseesStaffId, branchNo: BranchId }) return propertiesForRent.last() } var viewingsCount = 0 function generateViewing(clientNo, propertyNo, date){ // insert into Viewing values('C00003', 'P00001', '09-01-2016', 'Pretty good'); return { client: clients.getRandom(), property: propertiesForRent.getRandom().id, date: randomDate(new Date(2014,0,0), new Date()), feedback: feedbacks.getRandom() } } var leasesCount = 0 var leases = [] function generateLease(propertyId, clientId){ // insert into Lease values('L00008', 'P00013', 'C00007', 23000, 'bank_order', 11500, true, '10-01-2016', null, 10); var rentStart = randomDate(new Date(2014,0,0), new Date(2017,0,0)) var duration = Math.randomRange(1, 24) var rentFinishTmpFinish = new Date(rentStart) var rentFinish; rentFinishTmpFinish.setFullYear(rentStart.getFullYear() + duration / 12); rentFinishTmpFinish.setMonth(rentStart.getMonth() + duration % 12); if(rentFinishTmpFinish > new Date()){ rentFinish = null; } else { rentFinish = rentFinishTmpFinish } var rent = Math.randomRange(5, 12) * 1000 leases.push( { id: generateId("LEASE", leasesCount++), propertyId, clientId, rent, deposit: rent * 2, paymentType: paymentMethods[Math.random() % paymentMethods.length], rentStart: rentStart, rentFinish: rentFinish, duration: duration }) return leases.last() } var branches = [] for(var i = 0 ; i < 4; i++) branches.push(generateBranch()) branches.push(generateBranch({ inspector: 7, assistant: 7, director: 1, manager: 3 })) for (var i = 0; i < generatedPeople.length; i++) { console.log(generateInsert("STAFF", [ generatedPeople[i].name, generatedPeople[i].lastName, generatedPeople[i].position, generatedPeople[i].sex, generatedPeople[i].dateOfBirth, generatedPeople[i].salary, generatedPeople[i].branches, generatedPeople[i].supervisedBy || "null" ])) } for (var i = 0; i < branches.length; i++) { console.log(generateInsert("BRANCH", [ branches[i].city, branches[i].address, branches[i].postalCode, branches[i].manager ])) } var privateOwners = [] for(var i = 0 ; i < 20; i++) privateOwners.push(generatePrivateOwner()) for (var i = 20; i < privateOwners.length; i++) { console.log(generateInsert("PRIVATEOWNER", [ privateOwners[i].name, privateOwners[i].lastName, privateOwners[i].address, generatePhone() ])) } repeat(20).func(generateClient).forEach(e=>{ console.log(generateInsert("CLIENT", [ e.address, e.phone, e.propertyType, e.maxRent ])) }) repeat(20).func(()=>{ var branch = branches.getRandom().id var overseesBy = generatedPeople.filter(person=>person.branches==branch && ["inspector", "assistant"].indexOf(person.position) != -1) .getRandom().id var ownerId = privateOwners.getRandom().id return generatePropertyForRent(generateId("PRIVATEOWNER", ownerId), generateId("STAFF",overseesBy), branch) }).map(e=>generateInsert("PROPERTYFORRENT",[ e.city, addresses.getRandom(), e.postalCode, e.propertyType, e.rooms, e.rent, e.privateOwner, e.overseesBy, e.branchNo ])).apply(console.log) propertiesForRent.map(property=>{ var lease = generateLease(property.id, property.privateOwner) return generateInsert("LEASE", [ lease.id, generateId("PROPERTYFORRENT",lease.propertyId), lease.clientId, lease.rent, lease.deposit, lease.paymentType, formatDate(new Date(lease.rentStart)), lease.rentFinish ? formatDate(new Date(lease.rentFinish)): "null", lease.duration ]) }).apply(console.log) repeat(30).func(generateViewing).map((viewing)=>{ return generateInsert("VIEWING", [ generateId("CLIENTS", viewing.client.id), generateId("PROPERTYFORRENT", viewing.property), formatDate(viewing.date), viewing.feedback ]) }).apply(console.log) // (lease.rentFinish != null ? formatDate(new Date(lease.rentFinish)) : "null"),
var fs = require('fs') var addresses = fs.readFileSync("./streets.data").toString().split("\n").map(e=>e.trim()) Array.prototype.getRandom = function(){ return this[Math.randomRange(0, this.length)] } Array.prototype.apply = function(func){ var res = []; for(var item of this){ res.push(func(item)) } res } Array.prototype.last = function(){ if(this.length > 0) return this[this.length-1] else return undefined } var names = ["Sophia", "Jackson", "Emma", "Aiden", "Olivia", "Lucas", "Ava", "Liam", "Mia", "Noah", "Isabella", "Ethan", "Riley", "Mason", "Aria", "Caden", "Zoe" ,"Oliver", "Charlotte", "Elijah", "Lily", "Grayson", "Layla", "Jacob", "Amelia", "Michael", "Emily", "Benjamin", "Madelyn", "Carter"] var lastnames = [ "Smith" , "Jones" , "Williams", "Taylor" , "Brown" , "Davies" , "Evans" , "Wilson" , "Thomas" , "Johnson" , "Roberts" , "Robinson" , "Thompson", "Wright" , "Walker"] var cities = [ "Kiev" , "Charkiv" , "Odessa" , "Dnipropetrovsk", "Donetsk" , "Zaporizhia", "Lviv" , "Kryvyi Rih", "Mykolaiv" , "Kherson" ] var position = ['director', 'inspector', 'manager', 'assistant'] var propertyTypes = ['house', 'office', 'flat', 'villa', 'appartment', 'garage'] var feedbacks = ["a", "b", "c"] var paymentMethods = ['cash', 'visa', 'transaction'] var old_random = Math.random Math.random = function(){ var n = old_random() * 10000000 n -= n % 1; return parseInt(n, 10) } function repeat(times){ return { func: (func)=>{ var res = [] for(var i = 0 ; i < times; i++) res.push(func(i)) return res } } } Math.randomRange = function(a,b){ return Math.random() % (b-a) + a; } Math.randomLuck = function(percents){ return Math.randomRange(0,100) % 100 <= percents; } function generatePhone(){ return `(0${Math.randomRange(10,99)}) ${Math.randomRange(100, 999)}-${Math.randomRange(10, 99)}-${Math.randomRange(10, 100)}}` } function generatePostalCode(){ return (Math.randomRange(30, 60)).toString() + (Math.random()%1000).toString() } function generateInsert(table, array){ return `INSERT INTO ${table} VALUES(` + array.map(e=>"'"+e).join("',") + "')" } var ids = {} function generateId(name, number){ if(name === "PRIVATEOWNER") name = "OWNER" if(!number){ if(ids[name] == undefined){ ids[name] = 0 } else { ids[name]++ } number = ids[name] } var num = number.toString() return name[0] + ("0".repeat(4 - num.length)) + num } function generatePerson(){ // var sex = (Math.random() % 2 ? "F": "M") var name, lastName; var nameIndex = Math.random() % names.length name = names[nameIndex] lastName = lastnames[Math.random() % lastnames.length] return { sex: nameIndex % 2 ? "M": "F", name, lastName } } function randomDate(start, end) { return new Date(start.getTime() + ((Math.random() % 100) / 100) * (end.getTime() - start.getTime())); } function formatDate(date){ if(!date.getFullYear() < 2040) return `${date.getMonth()}-${date.getDay()}-${date.getFullYear()}` else return "null" } function generateAddress(){ return [ generatePostalCode(), cities.getRandom(), addresses.getRandom()+".", Math.randomRange(1,150) ].map(e=>e.toString()).join(", ") } var generatedPeopleId = 0 var generatedPeople = [] function generateBranch(conf){ // conf: { // director: q, // manager: q, // inspector: q, // assistant: q // } var directorCreated = false var managerCreated = false var localGeneratedPeople = [] var branchId = generateId('Branch') function pushPerson(type){ localGeneratedPeople.push(Object.assign(generatePerson(), {position: type, id: generatedPeopleId++, branches: branchId})) return localGeneratedPeople[localGeneratedPeople.length-1] } if(!conf){ for(var i = 0; i < Math.randomRange(10,25); i++){ var rnd = (Math.random() % 100) / 100 if(rnd < 0.1 && !directorCreated){ var director = pushPerson('director') directorCreated = director.id } else if(rnd < 0.4) { pushPerson('inspector') } else if(rnd < 0.6){ pushPerson('manager') managerCreated = i } else if(rnd < 1){ pushPerson('assistant') } } } else { for(var key of Object.keys(conf)){ for(var i = 0; i < conf[key]; i++){ if(key === "director"){ var director = pushPerson('director') directorCreated = director.id } else if(key === "manager"){ var manager = pushPerson('manager') managerCreated = manager.id } else{ pushPerson(key) } } } } if(!managerCreated){ pushPerson('manager') managerCreated = localGeneratedPeople.length - 1 } if(!directorCreated){ pushPerson('director') directorCreated = localGeneratedPeople.length - 1 } for(var i = 0; i < localGeneratedPeople.length; i++){ var date = randomDate(new Date(1970, 0,0), new Date(1990, 0, 0)) localGeneratedPeople[i].dateOfBirth = formatDate(date) localGeneratedPeople[i].salary = (((Math.random() % 5 + 5) * (5 - position.indexOf(localGeneratedPeople[i].position)) / 2)) * 1000 if(i != directorCreated && (localGeneratedPeople[i].position == "manager" || localGeneratedPeople[i].position == "inspector")){ localGeneratedPeople[i].supervisedBy = directorCreated } else if(localGeneratedPeople[i].position == 'assistant'){ var avail = localGeneratedPeople.filter(person=> (/*person.position == 'manager' ||*/ person.position == 'inspector')) localGeneratedPeople[i].supervisedBy = avail.getRandom().id } else { localGeneratedPeople[i].supervisedBy = null } } localGeneratedPeople.map((p)=>{ p.supervisedBy = generateId("STAFF", p.supervisedBy); generatedPeople.push(p) return p }) // for(var person of localGeneratedPeople){ // generatedPeople.push(person) // } return { manager: generateId('Staff', managerCreated), city: cities[Math.random() % cities.length], address: addresses[Math.random() % addresses.length], postalCode: generatePostalCode(), id: branchId } } var usedPrivateOwners = {} var privateOwners = [] var privateOwnersCount = 0 function generatePrivateOwner(){ // insert into PrivateOwner values('O00001', 'Galina', 'Lennon', 'Odesa, Bunina, 4', '874250779516'); var owner = Object.assign(generatePerson(), { id: privateOwnersCount++, address: generateAddress(), phone: generatePhone() }) // usedPrivateOwners[p] return owner } var clients = [] var clientsCount = 0 function generateClient(){ // insert into Client values('C00008', 'Petr', 'Rafsen', '179725839934', 'apartment', 9000); clients.push( Object.assign(generatePerson(), { id: clientsCount++, address: generateAddress(), phone: generatePhone(), propertyType: propertyTypes.getRandom(), maxRent: (Math.random() % 5 + 5) * 1000 })) return clients.last() } var propertiesForRent = [] var propertiesForRentCount = 0 function generatePropertyForRent(ownerId, overseesStaffId, BranchId){ // insert into PropertyForRent values('P00004', 'Odesa', 'Bazarna, 56', '65000', 'house', 12, 18000, 'O00002', 'S00016', 'B00002'); propertiesForRent.push({ id: propertiesForRentCount++, city: cities[Math.random() % cities.length], address: addresses[Math.random() % addresses.length], postalCode: generatePostalCode(), propertyType: propertyTypes[Math.random() % propertyTypes.length], rooms: Math.random() % 12 + 3, rent: (Math.random() % 12 + 6) * 1000, privateOwner: ownerId, overseesBy: overseesStaffId, branchNo: BranchId }) return propertiesForRent.last() } var viewingsCount = 0 function generateViewing(clientNo, propertyNo, date){ // insert into Viewing values('C00003', 'P00001', '09-01-2016', 'Pretty good'); return { client: clients.getRandom(), property: propertiesForRent.getRandom().id, date: randomDate(new Date(2014,0,0), new Date()), feedback: feedbacks.getRandom() } } var leasesCount = 0 var leases = [] function generateLease(propertyId, clientId){ // insert into Lease values('L00008', 'P00013', 'C00007', 23000, 'bank_order', 11500, true, '10-01-2016', null, 10); var rentStart = randomDate(new Date(2014,0,0), new Date(2017,0,0)) var duration = Math.randomRange(1, 24) var rentFinishTmpFinish = new Date(rentStart) var rentFinish; rentFinishTmpFinish.setFullYear(rentStart.getFullYear() + duration / 12); rentFinishTmpFinish.setMonth(rentStart.getMonth() + duration % 12); if(rentFinishTmpFinish > new Date()){ rentFinish = null; } else { rentFinish = rentFinishTmpFinish } var rent = Math.randomRange(5, 12) * 1000 leases.push( { id: generateId("LEASE", leasesCount++), propertyId, clientId, rent, deposit: rent * 2, paymentType: paymentMethods[Math.random() % paymentMethods.length], rentStart: rentStart, rentFinish: rentFinish, duration: duration }) return leases.last() } var branches = [] for(var i = 0 ; i < 4; i++) branches.push(generateBranch()) branches.push(generateBranch({ inspector: 7, assistant: 7, director: 1, manager: 3 })) for (var i = 0; i < generatedPeople.length; i++) { console.log(generateInsert("STAFF", [ generatedPeople[i].name, generatedPeople[i].lastName, generatedPeople[i].position, generatedPeople[i].sex, generatedPeople[i].dateOfBirth, generatedPeople[i].salary, generatedPeople[i].branches, generatedPeople[i].supervisedBy || "null" ])) } for (var i = 0; i < branches.length; i++) { console.log(generateInsert("BRANCH", [ branches[i].city, branches[i].address, branches[i].postalCode, branches[i].manager ])) } var privateOwners = [] for(var i = 0 ; i < 20; i++) privateOwners.push(generatePrivateOwner()) for (var i = 20; i < privateOwners.length; i++) { console.log(generateInsert("PRIVATEOWNER", [ privateOwners[i].name, privateOwners[i].lastName, privateOwners[i].address, generatePhone() ])) } repeat(20).func(generateClient).forEach(e=>{ console.log(generateInsert("CLIENT", [ e.address, e.phone, e.propertyType, e.maxRent ])) }) repeat(20).func(()=>{ var branch = branches.getRandom().id var overseesBy = generatedPeople.filter(person=>person.branches==branch && ["inspector", "assistant"].indexOf(person.position) != -1) .getRandom().id var ownerId = privateOwners.getRandom().id return generatePropertyForRent(generateId("PRIVATEOWNER", ownerId), generateId("STAFF",overseesBy), branch) }).map(e=>generateInsert("PROPERTYFORRENT",[ e.city, addresses.getRandom(), e.postalCode, e.propertyType, e.rooms, e.rent, e.privateOwner, e.overseesBy, e.branchNo ])).apply(console.log) propertiesForRent.map(property=>{ var lease = generateLease(property.id, property.privateOwner) return generateInsert("LEASE", [ lease.id, generateId("PROPERTYFORRENT",lease.propertyId), lease.clientId, lease.rent, lease.deposit, lease.paymentType, formatDate(new Date(lease.rentStart)), lease.rentFinish ? formatDate(new Date(lease.rentFinish)): "null", lease.duration ]) }).apply(console.log) repeat(30).func(generateViewing).map((viewing)=>{ return generateInsert("VIEWING", [ generateId("CLIENTS", viewing.client.id), generateId("PROPERTYFORRENT", viewing.property), formatDate(viewing.date), viewing.feedback ]) }).apply(console.log) // (lease.rentFinish != null ? formatDate(new Date(lease.rentFinish)) : "null"),
/* Simple Hello World in Node.js */ var year = 1; var month = 1 / 12; for (i = 1; i < 95; i++) { if (i % 12 === 0) { year++; } console.log(year); }
/* Simple Hello World in Node.js */ console.log("Hello World");
/* Simple Hello World in Node.js */ var http = require("http"); http.createServer(function(request, response){ response.writeHead(200, { 'content type': 'text/plain'}); response.end("Hello world\n"); }).listen(8081); //console will print the message console.log("server is running at https://127.0.0.1:8081/");
We use cookies to provide and improve our services. By using our site, you consent to our Cookies Policy. Accept Learn more