open event database revived
Find a file
2025-09-15 23:54:04 +02:00
.idea up stuff 2025-09-15 23:25:11 +02:00
data up stuff 2025-09-15 23:25:11 +02:00
examples Update other.json 2016-05-16 18:35:44 +02:00
oedb server alive 2025-09-15 23:54:04 +02:00
.env.example up stuff 2025-09-15 23:25:11 +02:00
.gitignore up stuff 2025-09-15 23:25:11 +02:00
API_QUERY_PARAMS.md up stuff 2025-09-15 23:25:11 +02:00
backend.py server alive 2025-09-15 23:54:04 +02:00
check_mock_events.py up stuff 2025-09-15 23:25:11 +02:00
check_tables.sh up stuff 2025-09-15 23:25:11 +02:00
create_mock_events.py up stuff 2025-09-15 23:25:11 +02:00
DB_CONNECTION_FIX.md server alive 2025-09-15 23:54:04 +02:00
docker-compose.yml Deal with updates 2016-05-07 10:59:57 +02:00
Dockerfile-backend up stuff 2025-09-15 23:25:11 +02:00
Dockerfile-postgres up stuff 2025-09-15 23:25:11 +02:00
LICENSE Initial commit 2016-04-14 15:58:32 +02:00
oedb.png OEDB logo ! 2016-06-03 08:58:05 +02:00
polyline.py Create polyline.py 2016-07-28 14:59:52 +02:00
README.md up stuff 2025-09-15 23:25:11 +02:00
requirements.txt server alive 2025-09-15 23:54:04 +02:00
run_tests.sh server alive 2025-09-15 23:54:04 +02:00
setup.sql allow searches on where:osm and where:wikidata 2023-03-14 15:50:21 +01:00
setup_db.sh up stuff 2025-09-15 23:25:11 +02:00
swagger.json Update swagger.json 2021-11-14 23:48:06 +01:00
test_api.py server alive 2025-09-15 23:54:04 +02:00
test_api_params.py up stuff 2025-09-15 23:25:11 +02:00
test_db_check.py up stuff 2025-09-15 23:25:11 +02:00
test_db_connection.py server alive 2025-09-15 23:54:04 +02:00
test_permissions.sh up stuff 2025-09-15 23:25:11 +02:00
test_table_permissions.sh up stuff 2025-09-15 23:25:11 +02:00

OpenEventDatabase Backend

OpenEventDatabase (OEDB) is a database for events with geographic information. It is a collaborative way to share things that have no space in OpenStreetMap.

Getting Started

Prerequisites

  • Docker and Docker Compose
  • PostgreSQL (if running locally without Docker)
  • Python 3.x (if running locally without Docker)

Installation

Copiez le fichier d'environnement pour accéder à la base de données.

cp .env.example .env

installez la base de données.

py -m venv venv
source venv/bin/activate
pip install -r requirements.txt
bash setup_db.sh

vous pouvez ajouter des données d'exemple:

cd data
py import_example_from_csv.co2db.py
  1. Clone the repository:

    git clone https://github.com/yourusername/openeventdatabase.git
    cd openeventdatabase/backend
    
  2. Start the services using Docker Compose:

    docker-compose up -d
    

    This will start both the PostgreSQL database and the backend API server.

  3. Access the API at http://localhost:8080

Running Locally

  1. Install dependencies:

    pip install -r requirements.txt
    
  2. Set up the database:

    ./setup_db.sh
    
  3. Verify database tables are properly created:

    ./check_tables.sh
    
  4. Start the server with uwsgi:

    uwsgi --http :8080 --wsgi-file backend.py --callable app
    

    Or with gunicorn:

    gunicorn backend:app
    

    Note: The server will automatically check database connectivity at startup and will exit if the PostgreSQL database is not responding.

    If you encounter permission errors when accessing the API (such as "permission denied for table events"), run the setup script again to ensure proper permissions:

    ./setup_db.sh
    

    You can also test database permissions with:

    ./test_permissions.sh
    

    Or specifically test permissions on the events table:

    ./test_table_permissions.sh
    

Environment Variables

  • DB_NAME: Database name (default: "oedb")
  • DB_HOST: Database host (default: localhost)
  • DB_USER: Database user (default: postgres)
  • POSTGRES_PASSWORD: Database password
  • NEW_USER: New PostgreSQL user to create with full permissions (default: "oedb_user")
  • NEW_PASSWORD: Password for the new PostgreSQL user (default: "oedb_password")

Mock Data

The repository includes scripts to create and check mock events in the database:

  1. Create mock events:

    ./create_mock_events.py
    

    This script creates 18 mock events (3 for each category: traffic, nature, weather, sport, conference, party) with start dates slightly before the current date and end dates far in the future.

  2. Check mock events:

    ./check_mock_events.py
    

    This script checks the mock events in the database, showing counts by category and date ranges for each event.

API Documentation

The OpenEventDatabase API allows you to search for events using various query parameters. You can filter events by:

  • Event type or category (what)
  • Time period (when, start, stop)
  • Geographic location (bbox, near, polyline)
  • And more...

For detailed information about the available query parameters, examples, and response format, see the API Query Parameters Documentation. Have a look at the swagger file. swagger.json

License

See the LICENSE file for details.