PageSourceSearch

https://freel.app/

html freel.app collected 2026-10-02 01:13:24 UTC 13,271 bytes, 253 lines download raw bytes

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.