https://github.com/stefanasandei/remix-maps
InfoEducatie Open 2023
https://github.com/stefanasandei/remix-maps
Last synced: 3 months ago
JSON representation
InfoEducatie Open 2023
- Host: GitHub
- URL: https://github.com/stefanasandei/remix-maps
- Owner: stefanasandei
- License: gpl-3.0
- Created: 2023-07-26T19:20:51.000Z (almost 2 years ago)
- Default Branch: main
- Last Pushed: 2023-07-27T13:45:45.000Z (almost 2 years ago)
- Last Synced: 2025-01-04T15:36:03.449Z (5 months ago)
- Language: TypeScript
- Homepage: https://remix-maps.vercel.app
- Size: 301 KB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE.txt
Awesome Lists containing this project
README
# InfoEducatie_Maps
Proiect realizat de Asandei Stefan-Alexandru in cadrul probei openla sectiunea web, InfoEducatei 2023.
Backend repo: [link](https://github.com/NikolaTesla13/remix-maps-backend)
## Documentatie
Proiectul are doua componente principale:
- frontend: Redux, Remix, TypeScript, Tailwind, Leaflet, Cypress
- backend: Python, Flask, OpenCV, YOLOv3
- 3rd party: OpenStreetMap## Frontend
Exista doua pagini: "/" (sistem GPS pentru harta lumii, nu apeleaza backend-ul ci in schimb foloseste API-ul OpenStreetMap) si "/bucharest" (harta a Bucurestiului ce comunica cu backend-ul pentru feed live din camere, si identificarea traficului).
Privind accesibilitatea, interfata este responsive, continutul adaptandu-se si pentru desktop cat si pentru telefoane. Contrastul dintre elemente este optim, iar imaginele contint tag-ul "alt", pentru a optimiza folosirea unui screen reader. Harta poate fi utilizata si prin intermediul mouse/tastatura cat si prin touch. Locatiile pot fi cautate folosind limbaj natural.
Testele sunt scrise folosind Cypress.
## Backend
Un server Flask are mai multe cai, pentru identificarea masinilor din feed-ul camerelor.
Pentru camerele de filmare:
- daca timpul dintre doua request-uri pentru a cere datele camerelor este mai mare de o mie de secunde, va fi rulat din nou algoritmul de identificare a masinilor
- imaginile si metadata sunt stocate intr-un cache local si sunt folosite intre regenerari
- este folosit modelul YOLOv3 pentru a detecta masinile din imagine
- imaginile sunt procesate in paralelDin punct de vedere al securitatii, una din caile API ("/cache?path=") are ca argument calea catre un fisier din cache, ce continte imaginea de la camera procesata. Utilizatorul ar trebui sa foloseasca ca "path" doar una din valorile returnate de calea "/cameras", daca acesta nu este cazul, calea este verificata si curatata astfel incat backend-ul sa nu returneze un fisier la care utilizatorul nu are acces.
Comunicarea dintre backend si frontend se face folosind formatul JSON.
