Skip to content

SilviuPe/BS

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

28 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Business Search Platform

This platform allows you to create and manage businesses worldwide using OpenStreetMap data, which is completely free.


How to Setup

1. Clone the Repository

git clone https://github.com/SilviuPe/BSAI.git

Frontend Setup

Navigate to the frontend directory and install dependencies:

cd BSAI/frontend
npm install

Create a .env file:

VITE_API_URL=http://127.0.0.1:5000

Build and run the frontend:

npm run build
npm run preview

API Setup

Navigate to backend and create a virtual environment:

cd ../backend
python -m venv .venv
cd .venv/Scripts/
./activate
cd ../..
pip install -r requirements.txt

Create .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

Database Setup for Nominatim (Including Replication)

Prerequisites

  • PostgreSQL (14+)
  • PostGIS
  • Nominatim
  • .pbf file from OpenStreetMap
  • SSD and minimum 16GB RAM recommended

Install PostgreSQL and PostGIS

sudo apt update
sudo apt install postgresql postgresql-contrib postgis postgresql-14-postgis-3

Verify:

sudo systemctl status postgresql

Create Database

sudo -u postgres createuser -s nominatim
sudo -u postgres createdb -O nominatim nominatim
psql -U nominatim -d nominatim
CREATE EXTENSION postgis;
CREATE EXTENSION hstore;

Download OSM Data

wget https://download.geofabrik.de/europe/romania-latest.osm.pbf

You can also find all countries here: https://download.geofabrik.de


Install Nominatim

git clone https://github.com/openstreetmap/nominatim.git
cd nominatim
mkdir build
cd build
cmake ..
make

Configure Nominatim

export NOMINATIM_DATABASE_DSN="pgsql:dbname=nominatim user=nominatim"

Import Data with Replication

nominatim import \
  --osm-file /path/to/romania-latest.osm.pbf \
  --enable-replication

Configure Replication

nano /path/to/nominatim/project-dir/settings/replication.conf

Example:

base_url=https://planet.openstreetmap.org/replication/minute/

Start Replication

nominatim replication init
nominatim replication update
nominatim replication update --once

Cron job:

*/5 * * * * nominatim replication update --once

Custom Database (companies_data)

CREATE 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
);

Run the Backend

python -m main

About

Business Search is a free self-hosted platform that helps freelancers and small companies find potential clients using OpenStreetMap (OSM) data. It extracts business contact and social media information and returns structured results for lead generation.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors