This platform allows you to create and manage businesses worldwide using OpenStreetMap data, which is completely free.
git clone https://github.com/SilviuPe/BSAI.gitNavigate to the frontend directory and install dependencies:
cd BSAI/frontend
npm installCreate a .env file:
VITE_API_URL=http://127.0.0.1:5000
Build and run the frontend:
npm run build
npm run previewNavigate to backend and create a virtual environment:
cd ../backend
python -m venv .venv
cd .venv/Scripts/
./activate
cd ../..
pip install -r requirements.txtCreate .env file:
OSM_DATABASE_HOST=localhost
OSM_DATABASE_PORT=5431
OSM_DATABASE_USERNAME=change_me
OSM_DATABASE_PASSWORD=change_me
OSM_DATABASE_NAME=change_me
BS_DATABASE_NAME=change_me
- PostgreSQL (14+)
- PostGIS
- Nominatim
.pbffile from OpenStreetMap- SSD and minimum 16GB RAM recommended
sudo apt update
sudo apt install postgresql postgresql-contrib postgis postgresql-14-postgis-3Verify:
sudo systemctl status postgresqlsudo -u postgres createuser -s nominatim
sudo -u postgres createdb -O nominatim nominatim
psql -U nominatim -d nominatimCREATE EXTENSION postgis;
CREATE EXTENSION hstore;wget https://download.geofabrik.de/europe/romania-latest.osm.pbfYou can also find all countries here: https://download.geofabrik.de
git clone https://github.com/openstreetmap/nominatim.git
cd nominatim
mkdir build
cd build
cmake ..
makeexport NOMINATIM_DATABASE_DSN="pgsql:dbname=nominatim user=nominatim"nominatim import \
--osm-file /path/to/romania-latest.osm.pbf \
--enable-replicationnano /path/to/nominatim/project-dir/settings/replication.confExample:
base_url=https://planet.openstreetmap.org/replication/minute/
nominatim replication init
nominatim replication update
nominatim replication update --onceCron job:
*/5 * * * * nominatim replication update --onceCREATE DATABASE companies_data;
\c companies_data;
CREATE TABLE companies_visited (
id INTEGER PRIMARY KEY,
address VARCHAR(255),
email VARCHAR(255),
lat DOUBLE PRECISION,
lng DOUBLE PRECISION,
name VARCHAR(255),
phone VARCHAR(50),
website VARCHAR(255),
place_id INTEGER,
facebook_url VARCHAR(255),
instagram_url VARCHAR(255),
tiktok_url VARCHAR(255),
linkedin_url VARCHAR(255),
youtube_url VARCHAR(255),
x_url VARCHAR(255),
saved BOOLEAN DEFAULT false
);python -m main