feat: add PostgreSQL support and enhance evaluation loading

- Added `pg` and `@types/pg` dependencies for PostgreSQL integration.
- Updated `useEvaluation` hook to load user evaluations from the API, improving data management.
- Refactored `saveUserEvaluation` and `loadUserEvaluation` functions to interact with the API instead of localStorage.
- Introduced error handling for profile loading and evaluation saving to enhance robustness.
- Added new methods for managing user profiles and evaluations, including `clearUserProfile` and `loadEvaluationForProfile`.
This commit is contained in:
Julien Froidefond
2025-08-21 08:46:52 +02:00
parent 488684fd9b
commit 4e82a6d860
14 changed files with 1467 additions and 125 deletions

33
services/database.ts Normal file
View File

@@ -0,0 +1,33 @@
import { Pool } from "pg";
// Configuration de la base de données
const dbConfig = {
host: process.env.DB_HOST || "localhost",
port: parseInt(process.env.DB_PORT || "5432"),
database: process.env.DB_NAME || "peakskills",
user: process.env.DB_USER || "peakskills_user",
password: process.env.DB_PASSWORD || "peakskills_password",
};
// Pool de connexions global
let pool: Pool | null = null;
export function getPool(): Pool {
if (!pool) {
pool = new Pool(dbConfig);
pool.on("error", (err) => {
console.error("Unexpected error on idle client", err);
process.exit(-1);
});
}
return pool;
}
export async function closePool(): Promise<void> {
if (pool) {
await pool.end();
pool = null;
}
}