You will need pnpm, Poetry installed and Postgres running locally
> pnpm
> pnpm run watch
In another tab
> poetry install
> poetry run uvicorn orflaedi.main:app --reload
Drop into a Fish shell in the Docker
docker compose up --build -d
docker exec -it db1eead29953 fish
Use something like this for black formating in a .vscode/settings.json
file.
{
"python.formatting.provider": "black",
"editor.formatOnSave": true,
"python.formatting.blackArgs": ["--line-length=100"]
}
This project scrapes Icelandic e-bike retailer websites
- ellingsen.s4s.is
- orninn.is
- kriacycles.is
- tri.is
- rafmagnshjol.is
- reidhjolaverzlunin.is
- markid.is
- gap.is
- peloton.is
- ofsi.is
- hjolasprettur.is
- hvellur.com
- bike.is (Fjallakofinn)
- everest.is
- nova.is
- skidathjonustan.com (Akureyri)
- elko.is
- sensabikes.is
- gastec.is
TODO
Vehicles can be browsed on these dimensions
- Price
- Below 60.000 kr
- Between 60.000 and 130.000 kr
- Between 130.000 and 250.000 kr
- Between 250.000 and 600.000 kr
- Above 600.000 kr
- Vehicle classification
- Reiðhjól C (mostly scooters)
- Reiðhjól B (e-bikes)
- Létt bifhjól (light two wheeler above 250w)
- Hraðhjól (also called Létt bifhjól 2, light two wheeler above 25km/h top speed)
- Retailer
- see websites above
In the future it would be good to connect vehicles to electribikereview.com to get frame types, purpose (gravel, city, cargo etc.). I scraped the bike brand name too. Could add a filter for that to the UI.
The project is hosted on Render on www.orflaedi.is
. There is a Scrapy spider
for each of the retailer websites that is run a few times a day.
> poetry export --without-hashes -f requirements.txt > requirements.txt
> NODE_ENV=production yarn run build
- Update the requirements.txt (we’re using Poetry which uses a proper lockfile, but this is required for Render)
- Run a production build (it will slim down tailwindcss)
Next add a commit and push. It will autodeploy.
Images are served via imgix proxy (all bike images are references to the external URL, never persisted locally).