Synaplan
기업을 위한 오픈소스 AI 플랫폼
아직 감지된 업데이트가 없습니다. GitHub 릴리스가 나오면 여기에 보입니다.
개인 계정의 공개 저장소 소유자는 GitHub로 로그인해 운영자를 확인하고 소개를 직접 관리할 수 있습니다. 관리자 승인은 필요하지 않습니다.
로그인한 뒤 확인 파일을 만들어 이 저장소의 기본 브랜치에 30분 안에 커밋해 주세요. 다른 브랜치나 포크의 파일은 인정하지 않습니다. 파일을 올린 뒤 아래에서 확인하면 관리자 승인 없이 관리할 수 있습니다. 자격을 유지하려면 파일을 남겨 두세요.
로그인이 필요하면 로그인 화면으로 이동합니다. 로그인 후 이곳으로 돌아와 원하는 확인 버튼을 다시 눌러 주세요.
프로젝트 폴더에서 /nomorevibe verify를 실행하면 소유권을 확인하고 소개를 직접 관리할 수 있습니다.
1분 만에 확인하기메이커가 쓴 소개는 위의 한 줄이 전부입니다. 더 자세한 내용은 저장소 README에서 읽을 수 있습니다. 저장소 README ↗
README 전체를 불러오는 중입니다.
README 전문 보기 ↗Finds Caltrans projects that fit an electrical contractor, before and after they advertise, and shows who wins them.
Out of the box it shows Districts 07/08 at $1M–$3M.
python3 -m venv .venv && .venv/bin/pip install -r requirements-dev.txt
.venv/bin/python -m scraper.run manual # scrape once (a few minutes the first time)
.venv/bin/python app.py # open http://127.0.0.1:5050
Locally the data lives in SQLite at data/bids.db.
| Variable | Purpose |
|---|---|
BID_FINDER_COMPANY | Your company name. It's added to the User-Agent and highlighted ("YOU") in bid results. |
BID_FINDER_CONTACT | An email or phone in the User-Agent, so Caltrans can reach you. |
DATABASE_URL | Postgres connection string. Required on Vercel. |
CRON_SECRET | Protects the daily scrape endpoint on Vercel. |
BID_FINDER_ALERT_TO | Recipient shown on the demo alert emails. |
The default districts, estimate range and keyword list are in config.py.
app.py.DATABASE_URL. Without it the app falls back to a temporary SQLite file
that is wiped whenever the function restarts.CRON_SECRET (any random string) and, optionally, BID_FINDER_COMPANY
and BID_FINDER_CONTACT.vercel.json schedules the daily scrape at 16:30 UTC, which is
9:30 a.m. Pacific in summer and 8:30 a.m. in winter. Click Refresh now
once to load data right away.On a hosted deployment, Refresh now runs at most once every 15 minutes, so visitors can't make the site hit Caltrans repeatedly. Each run stops optional downloads after 4 minutes, within Vercel's 5-minute function limit, and the next run continues where it stopped.
Edit the paths in deploy/com.caltransbidfinder.scrape.plist, then:
cp deploy/com.caltransbidfinder.scrape.plist ~/Library/LaunchAgents/
launchctl load ~/Library/LaunchAgents/com.caltransbidfinder.scrape.plist
/api/now/sp/page) for the advertised list (timespan=all), the
upcoming list (timespan=upcoming) and each project's bid items. It downloads
the public Bid Summary PDFs for results.pypdf. A+B (cost + time) contracts are supported.db.py).BID_FINDER_ALERT_TO.robots.txt disallows automated access. This tool reads it once a
day at very low volume with an identifying User-Agent. Revisit this if Caltrans
objects or publishes a feed..venv/bin/pytest
Tests run against real responses and Bid Summary PDFs saved in tests/fixtures/.