1<!DOCTYPE html> 2<html> 3 <head> 4 <meta charset="utf-8"> 5 <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"> 6 7 <meta property="og:title" content="Freelapp - Uma plataforma de freelancers na sua região para celulares Android."/> 8 <meta property="og:type" content="website"/> 9 <meta property="og:url" content="https://freel.app/"/> 10 <meta property="og:image" content="https://freel.app/siteog2.png"/> 11 <meta property="og:image" content="https://lh3.googleusercontent.com/Qtxe0PL29VI6jJllfY906fhelEuOHSAcrltlfFZ_m3iodr0ZaQxYcxSyuZaljr_IU0k=s360"/> 12 <meta property="og:site_name" content="Freelapp - Uma plataforma de freelancers na sua região"/> 13 <meta property="og:description" content="Um mapa em tempo real de profissionais ao seu redor, com recursos de busca por perfis de profissionais, com portfólio e chat online gratuito. Ideal para quem busca contratar e/ou oferecer serviços enquanto profissionais autônomos."/> 14 15 <link href="https://maxcdn.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css" rel="stylesheet"> 16 <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.1.1/css/bootstrap.min.css" integrity="sha384-WskhaSGFgHYWDcbwN70/dfYBj47jz9qbsMId/iRN3ewGhXQFZCSftd1LZCfmhktB" crossorigin="anonymous"> 17 <link rel="stylesheet" href="landing-min.css"> 18 <link rel="stylesheet" href="https://unpkg.com/material-components-web@latest/dist/material-components-web.min.css"> 19 20 <title>Freelapp - Uma plataforma de freelancers na sua região</title> 21 22 <!-- update the version number as needed --> 23
23<script defer src="/__/firebase/7.5.0/firebase-app.js"></script>
23 24 <!-- include only the Firebase features as you need --> 25
25<script defer src="/__/firebase/7.5.0/firebase-database.js"></script>
25 26 <!-- initialize the SDK after all desired features are loaded --> 27
27<script defer src="/__/firebase/init.js"></script>
27 28
28<script defer src="https://cdn.firebase.com/libs/geofire/4.1.2/geofire.min.js"></script>
28 29
29<script defer src="https://unpkg.com/material-components-web@latest/dist/material-components-web.min.js"></script>
29 30
30<script src="https://code.jquery.com/jquery-3.3.1.min.js" integrity="sha256-FgpCb/KJQlLNfOu91ta32o/NMZxltwRo8QtmkMRdAu8=" crossorigin="anonymous"></script>
30 31
31<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.3/umd/popper.min.js" integrity="sha384-ZMP7rVo3mIykV+2+9J3UJ46jBk0WLaUAdn689aCwoqbBJiSnjAK/l8WvCWPIPm49" crossorigin="anonymous"></script>
31 32
32<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.1.1/js/bootstrap.min.js" integrity="sha384-smHYKdLADwkXOn1EmN1qk/HfnUcbVRZyYmZ4qpPea6sjB/pTJ0euyQp0Mk8ck+5T" crossorigin="anonymous"></script>
32 33 <!-- Global site tag (gtag.js) - Google Analytics -->
vendor: 68 bytes, lines 33-34
33 34 <script async src="https://www.googletagmanager.com/gtag/js?id=
34UA-153070858-1
vendor: 16 bytes, lines 34-35
34"></script> 35
35<script> 36
vendor: 146 bytes, lines 36-40
36window.dataLayer = window.dataLayer || []; 37 function gtag(){dataLayer.push(arguments);} 38 gtag('js', new Date()); 39 40 gtag('config', '
40UA-153070858-1
vendor: 8 bytes, lines 40-41
40'); 41
41</script>
41 42 43 <style> 44 @media only screen and (min-device-width: 1025px) { 45 .list-group { width:50%; } 46 .hero { position: fixed; top: 0; } 47 } 48 @media only screen and (max-width: 575px) { 49 .list-group { width:100%!important; } 50 } 51 </style> 52 </head> 53 <body> 54 55 <div role="progressbar" class="mdc-linear-progress mdc-linear-progress--indeterminate" id="loadingbar"><div class="mdc-linear-progress__buffering-dots"></div><div class="mdc-linear-progress__buffer"></div><div class="mdc-linear-progress__bar mdc-linear-progress__primary-bar"><span class="mdc-linear-progress__bar-inner"></span></div><div class="mdc-linear-progress__bar mdc-linear-progress__secondary-bar"><span class="mdc-linear-progress__bar-inner"></span></div></div> 56 57 <div> 58 <div class="dark"> 59 <!--div class="blurred-cover" style="" WARNING - Abysmal perf --> 60 </div> 61 </div> 62 <div class="white-background"> 63 </div> 64 <main id="main"> 65 <section class="hero"> 66 <div class="app-container fill"> 67 <div class="row"> 68 <div class="col-sm-6 col-xs-12 fill flex-box left"> 69 <div class="phone-container"> 70 <img src="phoneframe.png" class="frame-image"> 71 <div id="carousel" class="carousel fade" data-ride="carousel"> 72 <div class="carousel-inner"><div class="item active"> 73 <img src="appscreenshot.png" alt="app screenshot"> 74 </div> 75 </div> 76 </div> 77 </div> 78 </div> 79 <div class="col-sm-6 col-xs-12 fill flex-box right"> 80 <div class="app-content"> 81 <h2 class="app-name app-field">Freelapp</h2> 82 <h1 class="tag-line app-field">Uma plataforma de freelancers na sua região.</h1> 83 <div class="description app-field"> 84 <p>Um mapa em tempo real de profissionais ao seu redor, com recursos de busca por perfis de profissionais, com portfólio e chat online gratuito.</p> 85 <p>Ideal para quem busca contratar e/ou oferecer serviços enquanto profissionais autônomos.</p> 86 <p>Precisamos de sua localização para exibir uma prévia de profissionais ao seu redor. Não usaremos sua localização para outros propósitos. Para mais informações, conheça nossa <a href="https://freel.app/privacy.html">polÃtica de privacidade</a>.</p> 87 </div> 88 <div> 89 <a class="app-link" id="googleLink" href="https://play.google.com/store/apps/details?id=com.faztudo&referrer=utm_source%freel.app%26utm_medium%3Dweb"> 90 <img class="app-icon" src="badgegoogleplay.png"> 91 </a> 92 </div> 93 <!--div> 94 <a class="app-link" id="googlePlusLink" href="https://plus.google.com/communities/115356362430928475652"> 95 <img class="app-icon" src="google-plus-communities.png"> 96 </a> 97 </div--> 98 </div> 99 <footer class="footer"> 100 <div class="container"> 101 <div class="row"> 102 <strong style="padding-right:22px;">Freelapp</strong> 103 <a class="footer-link" href="mailto:[email protected]">Contate-nos</a> 104 </div> 105 </div> 106 </footer> 107 </div> 108 </div> 109 </div> 110 </section> 111 </main> 112 </div> 113 <div> 114
114<script src="landing.js"></script>
114 115 </div> 116 117 <ul class="list-group" id="app-list"></ul> 118 119
119<script> 120 document.addEventListener('DOMContentLoaded', function() { 121 // // ð¥ð¥ð¥ð¥ð¥ð¥ð¥ð¥ð¥ð¥ð¥ð¥ð¥ð¥ð¥ð¥ð¥ð¥ð¥ð¥ð¥ð¥ð¥ð¥ð¥ð¥ð¥ð¥ð¥ð¥ð¥ 122 // // The Firebase SDK is initialized and available here! 123 // 124 // firebase.auth().onAuthStateChanged(user => { }); 125 // firebase.database().ref('/path/to/ref').on('value', snapshot => { }); 126 // firebase.messaging().requestPermission().then(() => { }); 127 // firebase.storage().ref('/path/to/ref').getDownloadURL().then(() => { }); 128 // 129 // // ð¥ð¥ð¥ð¥ð¥ð¥ð¥ð¥ð¥ð¥ð¥ð¥ð¥ð¥ð¥ð¥ð¥ð¥ð¥ð¥ð¥ð¥ð¥ð¥ð¥ð¥ð¥ð¥ð¥ð¥ð¥ 130 131 try { 132 let app = firebase.app(); 133 //let features = ['database'].filter(feature => typeof app[feature] === 'function'); 134 //document.getElementById('load').innerHTML = `Firebase SDK loaded with ${features.join(', ')}`; 135 var firebaseRef = firebase.database().ref("geofire"); 136 137 /* Uses the HTML5 geolocation API to get the current user's location */ 138 var getLocation = function() { 139 if (typeof navigator !== "undefined" && typeof navigator.geolocation !== "undefined") { 140 console.log("Asking user to get their location"); 141 navigator.geolocation.getCurrentPosition(geolocationCallback, errorHandler); 142 } else { 143 console.log("Your browser does not support the HTML5 Geolocation API, so this demo will not work.") 144 } 145 }; 146 147 /* Callback method from the geolocation API which receives the current user's location */ 148 var geolocationCallback = function(location) { 149 var latitude = location.coords.latitude; 150 var longitude = location.coords.longitude; 151 console.log("Retrieved user's location: [" + latitude + ", " + longitude + "]"); 152 153 var geoFire = new GeoFire(firebaseRef); 154 var geoQuery = geoFire.query({ 155 center: [latitude, longitude], 156 radius: 1000 157 }); 158 159 var keys = []; 160 161 var onKeyEnteredRegistration = geoQuery.on("key_entered", function(key, location) { 162 console.log(key + " entered the query. Hi " + key + "!"); 163 keys.push(key); 164 }); 165 166 var onReadyRegistration = geoQuery.on("ready", function() { 167 console.log("*** 'ready' event fired - cancelling query ***"); 168 geoQuery.cancel(); 169 // var appFreq = new Map(); 170 keys.forEach((key, i) => { 171 firebase.database().ref("users/" + key).once('value').then((userSnap) => { 172 const user = userSnap.val(); 173 console.log(user); 174 // apps.push(app); 175 const specialties = user['specialties']; 176 177 if (specialties) { 178 const name = user['name']; 179 const picUrl = user['picUrl']; 180 181 const ul = document.getElementById("app-list"); 182 183 const row = document.createElement("div"); 184 row.className = "row"; 185 row.style = "width:100%;height:100%"; 186 187 const leftDiv = document.createElement("div"); 188 // leftDiv.className = "col-sm-2"; 189 leftDiv.className="w-120" 190 const rightDiv = document.createElement("div"); 191 // rightDiv.className = "col-sm-10"; 192 rightDiv.className = "col" 193 rightDiv.style = "margin-top:10px;" 194 195 const a = document.createElement('a'); 196 a.target = "_blank"; 197 a.rel = "noopener noreferrer"; 198 a.href = "https://play.google.com/store/apps/details?id=com.faztudo&referrer=utm_source%freel.app%26utm_medium%3Dweb" 199 a.className = "list-group-item d-flex justify-content-between align-items-center list-group-item-action"; 200 // const div = document.createElement("div") 201 const img = document.createElement("img"); 202 img.width = 100; 203 img.height = 100; 204 img.style = "margin:10px;"; 205 img.src = picUrl; 206 img.onerror="this.parentNode.parentNode.remove()"; 207 208 // const div2 = document.createElement("div") 209 const h6 = document.createElement("h6"); 210 h6.innerHTML = name; 211 const h7 = document.createElement("h7"); 212 h7.innerHTML = specialties; 213 rightDiv.appendChild(h6); 214 rightDiv.appendChild(h7); 215 216 leftDiv.appendChild(img); 217 row.appendChild(leftDiv); 218 row.appendChild(rightDiv); 219 a.appendChild(row); 220 ul.insertBefore(a, ul.childNodes[0]); 221 } 222 }); 223 }); 224 const loadingBar = document.getElementById('loadingbar'); 225 loadingBar.parentNode.removeChild(loadingBar); 226 var $root = $('html, body'); 227 const $ul = $("app-list");//document.getElementById("app-list");
228 $root.stop(true,false).animate({ scrollTop: $("#app-list").offset().top }, 2000); 229 }); 230 }; 231 232 /* Handles any errors from trying to get the user's current location */ 233 var errorHandler = function(error) { 234 if (error.code == 1) { 235 console.log("Error: PERMISSION_DENIED: User denied access to their location"); 236 } else if (error.code === 2) { 237 console.log("Error: POSITION_UNAVAILABLE: Network is down or positioning satellites cannot be reached"); 238 } else if (error.code === 3) { 239 console.log("Error: TIMEOUT: Calculating the user's location too took long"); 240 } else { 241 console.log("Unexpected error code") 242 } 243 }; 244 245 getLocation(); 246 } catch (e) { 247 console.error(e); 248 document.getElementById('load').innerHTML = 'Error loading the Firebase SDK, check the console.'; 249 } 250 }); 251 </script>
251 252 </body> 253</html>
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.