Skip to content

Repository files navigation

Progetto Basi — Bike sharing DB Query Explorer

Applicazione C che si connette a un database PostgreSQL e permette di eseguire query interattive su un database di bike e monopattini sharing.


Indice


Utilizzo consigliato

Con docker installato non servono altre dipendenze.

# per costruire il database e l'app
docker compose up -d --build
# per eseguire l'app in c
docker compose run app

Requisiti

In caso non si riuscisse usando docker allora il codice va compilato con Make e il DB va caricato su un server Postgres.

Linux

sudo apt install gcc libpq-dev pkg-config libcmocka-dev

Mac (Apple Silicon e Intel)

brew install postgresql pkg-config cmocka

Windows

Installare MinGW-w64 (include gcc e mingw32-make) e PostgreSQL (versione 13–17).

Aggiungere al PATH di sistema:

C:\MinGW\bin
C:\Program Files\PostgreSQL\<versione>\bin

Il Makefile rileva automaticamente il path di PostgreSQL tramite pg_config.


Compilazione

Compilare l'applicazione

Linux / Mac:

make
# oppure esplicitamente
make all

Windows (MinGW):

mingw32-make
# oppure esplicitamente
mingw32-make all

Produce app.out su Linux/Mac, app.exe su Windows.

Pulire i file compilati

Linux / Mac:

make clean

Windows:

mingw32-make clean

Esecuzione

Prima di avviare l'app è necessario avere un'istanza PostgreSQL in esecuzione con il database Simulatore_F1 caricato.

Per default l'app si connette con:

user=postgres password=password dbname=Simulatore_F1 host=localhost

Per usare una stringa di connessione diversa, impostare la variabile d'ambiente DB_CONN:

# Linux / Mac
export DB_CONN="user=postgres password=miapassword dbname=Simulatore_F1 host=localhost"
./app.out

# Windows (PowerShell)
$env:DB_CONN="user=postgres password=miapassword dbname=Simulatore_F1 host=localhost"
.\app.exe

Accortezze

Mac — libpq-fe.h not found Se make fallisce con questo errore, pkg-config non riesce a trovare PostgreSQL. Verificare che Homebrew abbia installato correttamente il pacchetto:

brew install postgresql pkg-config
pg_config --includedir   # deve restituire un path valido

Windows — pg_config non trovato Verificare che C:\Program Files\PostgreSQL\<versione>\bin sia nel PATH di sistema. Il Makefile cerca automaticamente le versioni dalla 13 alla 17; se nessuna viene trovata, aggiungere il path manualmente.

Windows — mingw32-make non trovato Verificare che C:\MinGW\bin sia nel PATH di sistema. In alternativa, alcuni pacchetti MinGW installano il comando come make invece di mingw32-make — provare entrambi.

Windows — usare rm invece di del Se si usa Git Bash o WSL, il comando rm è disponibile e viene rilevato automaticamente dal Makefile. Con il prompt nativo cmd.exe viene usato del al suo posto.

Encoding caratteri speciali Su Windows il terminale potrebbe mostrare caratteri errati (es. Citt├á invece di Città). Impostare la codepage UTF-8 prima di avviare l'app:

chcp 65001

About

Si vuole creare un DB per gestire universi narrativi dove ci sono viaggi tomporali e interdimensionali.

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages