Easy-to-manage touch screens
무료 오픈소스 터치스크린으로 USB 설정 가이드, 드래그‑드롭 편집기, 로컬 제어를 제공하며 Home Assistant용으로 제작되었습니다
시·군·광역시·자치단체를 위한 버스·열차·요청형 교통·자전거·고속버스·택시 정보를 한 곳에 모아 여행 계획까지 제공하는 서비스입니다
Para comunidades intermunicipais, áreas metropolitanas e câmaras: autocarros, comboios, transporte a pedido, bicicletas, expressos e táxis num só sítio, com planeador de viagens, a página de cada para
라이프스타일TypeScript · PythonGitHub @fvsalgado온라인운영자 미확인
써 보셨어요? 한 번만 눌러 주세요. 로그인은 필요 없어요.
아직 감지된 업데이트가 없습니다. GitHub 릴리스가 나오면 여기에 보입니다.
개인 계정의 공개 저장소 소유자는 GitHub로 로그인해 운영자를 확인하고 소개를 직접 관리할 수 있습니다. 관리자 승인은 필요하지 않습니다.
로그인한 뒤 확인 파일을 만들어 이 저장소의 기본 브랜치에 30분 안에 커밋해 주세요. 다른 브랜치나 포크의 파일은 인정하지 않습니다. 파일을 올린 뒤 아래에서 확인하면 관리자 승인 없이 관리할 수 있습니다. 자격을 유지하려면 파일을 남겨 두세요.
로그인이 필요하면 로그인 화면으로 이동합니다. 로그인 후 이곳으로 돌아와 원하는 확인 버튼을 다시 눌러 주세요.
프로젝트 폴더에서 /nomorevibe verify를 실행하면 소유권을 확인하고 소개를 직접 관리할 수 있습니다.
1분 만에 확인하기Para comunidades intermunicipais, áreas metropolitanas e câmaras: autocarros, comboios, transporte a pedido, bicicletas, expressos e táxis num só sítio, com planeador de viagens, a página de cada paragem e de cada linha, e um painel para os avisos.
저장소 README에서 가져옴
README 전체를 불러오는 중입니다. 아래는 저장된 발췌입니다.
Toda a informação de transportes de um território num sítio só, um código e uma região por domínio. O Paragem.pt reúne os transportes que servem uma região — os autocarros da concessão, os urbanos municipais, o transporte a pedido, os comboios, as bicicletas partilhadas, os expressos e os táxis — e devolve-os em formatos que qualquer um pode voltar a usar: páginas de paragem, de linha e de concelho, um planeador de viagens, e os dados em GTFS e GBFS.README 전문 보기 ↗
Toda a informação de transportes de um território num sítio só, um código e uma região por domínio. O Paragem.pt reúne os transportes que servem uma região — os autocarros da concessão, os urbanos municipais, o transporte a pedido, os comboios, as bicicletas partilhadas, os expressos e os táxis — e devolve-os em formatos que qualquer um pode voltar a usar: páginas de paragem, de linha e de concelho, um planeador de viagens, e os dados em GTFS e GBFS.
O princípio de desenho é uma só porta de entrada: quem viaja não precisa de saber quem gere cada serviço. A navegação organiza-se por modo de transporte; a entidade responsável aparece como informação secundária («Gerido por …»).
Uma região é uma autoridade de transportes — um município, uma comunidade
intermunicipal ou uma área metropolitana — e entra por configuração, sem um
único commit. O processo está em docs/NOVA-REGIAO.md.
O CI constrói em todas as corridas três regiões inventadas de fio a pavio — a Serra da Pedra Alta e o Baixo Sável, que são as provas, e as Terras do Ameno, que são a demonstração. Não existem: nem uma paragem, nem uma estrada, nem um horário vêm de sítio nenhum. É isso que lhes permite ser ao mesmo tempo a demonstração pública do produto, sem pedir uma linha a ninguém, e a prova executável do que o produto afirma.
São duas porque uma sozinha não prova nada sobre multi-região — não há com que a comparar. E são diferentes uma da outra de propósito:
| Serra da Pedra Alta | Baixo Sável | |
|---|---|---|
| artigo | «a Serra» | «o Baixo Sável» |
| autoridade | comunidade intermunicipal | município sozinho |
| concelhos | 2 | 1 |
| modos | autocarro, urbano municipal, bicicleta, táxi | autocarro |
Com dois artigos, nenhuma contração fica colada ao código. Com uma câmara sozinha, fica provado que o produto não precisa de uma CIM. Com caixas geográficas disjuntas, uma coordenada trocada entre regiões falha em vez de cair nas duas. E com uma região de um modo só, vê-se que um modo ausente não desenha uma secção vazia.
As provas são o dia zero, de propósito mínimas. As Terras do Ameno são o dia
100: a região que se mostra a quem decide, com os sete modos — a rede com
urbanos e interurbanos, o comboio com o autocarro à porta da estação, o
transporte a pedido com zonas e regra de reserva, o urbano de uma câmara, as
bicicletas, um expresso e os táxis — e um mapa desenhado por nós. Nasce, como
as outras, só com leitores genéricos; tudo o que ela tem sai de
data/manual/demo/inventar.py.
A compilação de dados de uma região — os percursos, o mapeamento das paragens, os PDF das operadoras e das câmaras — não está aqui, e quase sempre não pode estar: não é nossa para publicar enquanto a autoridade de transportes não autorizar a reutilização.
Uma região vive numa raiz própria, que se aponta com PARAGEM_RAIZES:
PARAGEM_RAIZES=/caminho/para/os-dados uv run pipeline build --regiao <id>
Como isso funciona, e o que impõe, está em docs/RAIZES.md.
Há pipeline, há sítio e há planeador. O que não há, e é a razão de isto
ainda não estar publicado em nome de ninguém: os feeds não se republicam com
licença aberta enquanto a autoridade de transportes de cada região não
autorizar. É a Fase 5 do plano que está em CLAUDE.md.
O que uma construção produz, região a região:
| saída | o que é |
|---|---|
| GTFS da rede | reconstruído a partir do que a operadora publica |
| GTFS do operador ferroviário | tal e qual |
| GTFS dos expressos | recortado às viagens que servem a região |
| Recorte do OpenStreetMap | com margem, para as linhas que atravessam a fronteira |
| GBFS estático | os sistemas de bicicletas, sem prometer disponibilidade que não seja pública |
| GeoJSON | praças de táxi e traçados de urbanos municipais |
| Atribuição a concelhos | pela geometria da CAOP, e não por retângulo |
| Relatório de lacunas | o que falta, onde, e porque é que importa |
Três públicos, por esta ordem:
docs/ENDERECOS.md.Estão inteiras no CLAUDE.md §4. As quatro que mais se notam:
data/sources.yaml com endereço, data, licença e a
atribuição que exige.data/manual/, com a origem e a data anotadas.Precisa de uv e de Python 3.11 ou mais recente.
uv run pipeline build --regiao prova --sem-rede # uma região inventada, em segundos
uv run pipeline build --regiao prova-municipio --sem-rede # a outra
uv run pipeline build --regiao demo --sem-rede # a demonstração, com os sete modos
uv run pipeline mosaicos --regiao demo # o mapa dela, desenhado da geografia
uv run pipeline build --regiao <id> # uma região real: descarrega, constrói, valida
uv run pipeline validate --regiao <id> # só o validador, sem reconstruir
uv run pipeline report --regiao <id> # o relatório de lacunas
uv run pytest
E as quatro verificações que o CI corre:
uv run pipeline check-proveniencia # sources.yaml × REUSE.toml × TERCEIROS.md
uv run pipeline check-regioes # duas ou mais regiões, zero fugas
uv run pipeline check-numeros # os números que cada região declara esperar
uv run pipeline check-bloqueios --todas # bloqueios novos vs os já aceites
Tudo o que sai vai para build/<regiao>/, que não está no Git: reconstrói-se
com o comando acima.
O parser de horários precisa do pdftotext (pacote poppler-utils), o recorte
do OpenStreetMap do osmium-tool, e o validador de GTFS de Java 17. As três
versões estão fixadas, e o porquê está em
docs/ARQUITETURA.md.
O sítio serve páginas em cache, feitas do que o pipeline publica, e funciona com tudo o resto em baixo. Duas coisas não cabem numa página guardada e correm à parte:
otp/ — o motor de viagens, em Docker, atrás de um proxy com limites.disponibilidade/ — lê a página que um sistema de bicicletas publica e
serve as contagens como GBFS, com a hora da leitura. Corre como rota do
próprio sítio (web/src/app/api/station_status/route.js, um invólucro fino
sobre o mesmo núcleo) ou como contentor, à escolha de quem aloja. Ver
disponibilidade/README.md.Sem eles o sítio funciona à mesma — mostra o que sabe e diz o que não sabe, em vez de falhar em silêncio.
O software é AGPL-3.0-only. Cada ficheiro de dados que o sítio
publica diz os seus termos, e o rótulo sai do código (_termos, em
pipeline/src/paragem/sitio.py), e não de uma frase escrita à parte:
Os termos de cada fonte estão registados um a um em data/sources.yaml.
A marca Paragem.pt não é coberta pela licença do código. Os pormenores
estão em AUTORIA.md; a declaração legível por máquina está em
REUSE.toml.