GithubHelp home page GithubHelp logo

freemapslovakia / freemap-v3-nodejs-backend Goto Github PK

View Code? Open in Web Editor NEW
3.0 3.0 2.0 1.58 MB

API server (backend) for web application (freemap-v3-nodejs)

License: Apache License 2.0

JavaScript 1.64% TypeScript 98.36%

freemap-v3-nodejs-backend's People

Contributors

petervojtek avatar zdila avatar

Stargazers

 avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

freemap-v3-nodejs-backend's Issues

createTracklogHandler.js: SyntaxError: Unexpected token )

webserver sa kvoli tomu nespusti. ale je to zahadne, lebo zatvorky sa zdaju byt sparovane spravne

freemap-v3-api/app/routers/tracklogs/createTracklogHandler.js:27
  );
  ^
SyntaxError: Unexpected token )
    at createScript (vm.js:53:10)
    at Object.runInThisContext (vm.js:95:10)
    at Module._compile (module.js:543:28)
    at Object.Module._extensions..js (module.js:580:10)
    at Module.load (module.js:488:32)
    at tryModuleLoad (module.js:447:12)
    at Function.Module._load (module.js:439:3)
    at Module.require (module.js:498:17)
    at require (internal/module.js:20:19)
    at global.rootRequire.name (freemap-v3-api/index.js:2:30)
[nodemon] app crashed - waiting for file changes before starting...

resizovat obrazky na serveri

Navrhujem drzat aj original obrazok (zobrazeny po kliknuti na foto), avsak servirovat jeho zmenseninu. Velkost by mohla byt v URL. Vyriesit treba ci sa zmensenina bude cachovat na serveri a ako.

Nefunguje prihlásenie pomocou Google účtu v Chromium browseri

Pri prihlasovaní pomocou Google účtu v Chromium 91.0.4452.0:

  • prvý request (OPTIONS) na /auth/login-google vráti kód 204
  • druhý request (POST) na /auth/login-google s vyplneným "idToken" vráti chybu 500

Vo Firefoxe 87.0 prihlásenie funguje bez problémov:

  • prvý request (OPTIONS) na /auth/login-google vráti kód 204
  • druhý request (POST) na /auth/login-google s vyplneným "idToken" vráti kód 200

Support pre tracking z apky Traccar pre Android

Ahoj

prosim pridat support pre payload z appky Traccar.
V threade https://groups.google.com/g/osm_sk/c/BC5g37pmlRg/m/GNYUw9YlAQAJ dokonca clovek pise ze to funguje korektne z Traccar na IOS, avsak z Androidu mi to nejde.

Mam zapnute dve zariadenia ktore pravidelne posielaju data cez:
https://backend.freemap.sk/tracking/track/J7ihLyRf
https://backend.freemap.sk/tracking/track/sDIBtMf9
A budu posielat aj dalej kazdych 10-15 sekund, ak budu mat dobry signal.

Zial nemam prostriedky na zistenie struktury, skusal som vyrobit proxy cez Postman na localhoste, ale nejak tie post requesty nevidim, vidim iba bezne GET requesty ktore robim cez browser.

Ich support mi napisal ze:
"Traccar Client sends POST requests with parameters in the payload."
(https://www.traccar.org/forums/topic/custom-server/#post-45777)

ahoj, Miro

GET /tracklogs/ v dev env spadne s TypeError: Cannot create property 'headers' on boolean 'true'

[2017-08-21T14:22:19.107Z] ERROR: koa/17861 on Peters-MacBook-Pro.local: --> GET /tracklogs/7HGVqa7Zy8TTJ4qURJIGEV 500 0ms (req_id=2ce1bc9e-7965-45d1-983f-1333b1e92ebf, duration=0, req.remoteAddress=::1, req.remotePort=63951)
GET /tracklogs/7HGVqa7Zy8TTJ4qURJIGEV HTTP/1.1
host: localhost:3000
connection: keep-alive
origin: http://local.freemap.sk:8080
user-agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.90 Safari/537.36
accept: /
referer: http://local.freemap.sk:8080/?map=13/48.17181/17.09979&layers=K&track-uid=7HGVqa7Zy8TTJ4qURJIGEV
accept-encoding: gzip, deflate, br
accept-language: en-US,en;q=0.8
--
HTTP/1.1 500 Internal Server Error
HTTP/1.1 500 Internal Server Error
Content-Type: text/plain; charset=utf-8
Content-Length: 21
Date: Mon, 21 Aug 2017 14:22:19 GMT
Connection: keep-alive
--
TypeError: Cannot create property 'headers' on boolean 'true'
at next.catch.err (/Users/peter/repos/freemap-v3-nodejs-backend/node_modules/kcors/index.js:91:21)
at

Ešte raz chyba prihlásenia

Po nejakom timeou-te, alebo znovuotvorení prehliadača sa opäť objaví chyba s prihlásením "Nepodarilo sa prihlásiť: Server vrátil neočakávaný status: 500"

aku databazu pouzit?

Martin @zdila, pre ucely gpx uploadu by som originalny nazov subor (a neskor dalsie metadata, napr. owner, permissions) rad ukladal do nejakej db. v principe hocijaky key-value store s perzistenciou.
neviem odhadnut co vsetko ine v db bude, t.j. ako bude velka. odhadujem ze pri galerii obrazkov budes mat samotne fotky na disku a v db budu len metadata.

ja mam skusenost s tymto: https://github.com/techfort/LokiJS, ale to je na uvod mozno overkill (a nepouzil som to na viac ako 1000 zaznamov, takze neviem posudit aku to ma vykonnost).

Mazať dočasné súbory po upload-e fotiek na serveri

Pri/po uploade fotiek ostáva veľké množstvo súborov v temp-e:
# ls /tmp/upload_* | wc -l
889
T.j. cca 900 súborov za asi 10 dní. Nakoľko je tento adresár namapovaný v pamäti, znižuje to dostupnú RAM (aktuálne o cca 1,7GB) pre ostatné procesy:
# find /tmp -iname 'upload_*' -print0 | du --files0-from - -c -s | tail -1<br>
1703060 celkom
Zatiaľ tieto súbory mažem len ak sú staršie ako hodina, t.j. aby som omylom nezrušil nejaký práve prebiehajúci upload:
# find /tmp -iname 'upload_*' -mmin +60 -exec rm {} \;
Ale bolo by pekné, keby sa po uploade vyčistili tieto dočasné súbory automaticky, nech to nemusí byť robené ďalším skriptom spúšťaným z cron-u :)

Live tracking - moznost vyziadat si cez websockets najnovsiu poziciu

parameter maxcount=1 pri metode tracking.subscribe sice vrati jeden vysledok, no nejedna sa o najcerstvejsiu odoslanu poziciu. pre zistenie najnovsej pozicie je tak stale treba stahovat vsetky body. bodla by trebars nova metoda, ktora vrati najcerstvejsiu poziciu alebo mat aspon moznost body zoradit zostupne podla id.

povolit pouzivatelov s rovnakym menom

...keze mena mame z OSM a tam meno nie je jedinecne. Dodatocne by si mohol user zmenit meno. Alternativa je este pridat za meno cislo poradia ak je konflikt.

CRUD pre zaznam trasy

endpoint pre nastroj "prehliadac tras" na frontende.
v prvej verzii budeme podporovat iba format gpx, ale neskor chceme aj ine formaty (kmz).
v prvej verzii mame len anonymnych pouzivatelov.

tu je zodpovedajuca issue pre frontend

pouzivatel cez nastroj prehliadac tras nahra GPX, ta sa zobrazi. v menu pri zobrazenej trase by sme chceli mat tlacidlo "zdielat odkaz na trasu" ktore vygeneruje url. na to potrebujeme gpx nahrat na server a neskor ho zase ziskat.

Nahrat GPX

POST /tracklogs/

request body bude JSON:

{
   "data": <string - b64 enkodovane gpx>,
   "mediaType": "application/gpx+xml",
   "name": <nazov povodneho suboru>
  }

response bude JSON:

{"uid": <string>}

UID ma 16 znakov ([a-zA-Z0-9]), lebo ho budeme davat do url.

Ziskat GPX

GET /tracklogs/<uid>

v response body vrati json:

{
   "uid": <uid>,
   "data": <string - b64 enkodovane gpx>,
   "mediaType": "application/gpx+xml",
   "name": <nazov povodneho suboru>
  }

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.