From c341b49d2e92115c46ba3d267139b560f0f6b124 Mon Sep 17 00:00:00 2001 From: hkarimx Date: Wed, 19 Nov 2025 20:23:37 +0100 Subject: [PATCH 1/5] Add Week1 DB exercises 3.1 and 3.2 --- Week1/assignment/exer1.js | 106 +++++++++++++++++++++++++++++++ Week1/assignment/exer2.js | 127 ++++++++++++++++++++++++++++++++++++++ 2 files changed, 233 insertions(+) create mode 100644 Week1/assignment/exer1.js create mode 100644 Week1/assignment/exer2.js diff --git a/Week1/assignment/exer1.js b/Week1/assignment/exer1.js new file mode 100644 index 000000000..653a741c7 --- /dev/null +++ b/Week1/assignment/exer1.js @@ -0,0 +1,106 @@ +const { Client } = require("pg"); + +const DB_USER = "hyfuser"; +const DB_PASSWORD = "hyfpassword"; +const DB_HOST = "localhost"; +const DB_PORT = 5432; + +const baseConfig = { + host: DB_HOST, + port: DB_PORT, + user: DB_USER, + password: DB_PASSWORD, +}; + +async function withClient(database, handler) { + const client = new Client({ ...baseConfig, database }); + await client.connect(); + + try { + return await handler(client); + } finally { + await client.end(); + } +} + +async function setupMeetup() { + try { + // 1) Drop & recreate database meetup + await withClient("postgres", async (client) => { + console.log("Recreating database meetup..."); + + await client.query("DROP DATABASE IF EXISTS meetup;"); + await client.query("CREATE DATABASE meetup;"); + }); + + + await withClient("meetup", async (db) => { + console.log("Creating tables..."); + + await db.query(` + CREATE TABLE Invitee ( + invitee_no SERIAL PRIMARY KEY, + invitee_name VARCHAR(80) NOT NULL, + invited_by VARCHAR(80) NOT NULL + ); + `); + + await db.query(` + CREATE TABLE Room ( + room_no SERIAL PRIMARY KEY, + room_name VARCHAR(80) NOT NULL, + floor_number INTEGER NOT NULL + ); + `); + + await db.query(` + CREATE TABLE Meeting ( + meeting_no SERIAL PRIMARY KEY, + meeting_title VARCHAR(120) NOT NULL, + starting_time TIMESTAMP NOT NULL, + ending_time TIMESTAMP NOT NULL, + room_no INTEGER REFERENCES Room(room_no) + ); + `); + + console.log("Inserting sample data into Invitee..."); + await db.query(` + INSERT INTO Invitee (invitee_name, invited_by) VALUES + ('Karim', 'Majd'), + ('Rim', 'Karim'), + ('Alaa', 'Karim'), + ('Ivan', 'Majd'), + ('Dima', 'Ivan'); + `); + + console.log("Inserting sample data into Room..."); + await db.query(` + INSERT INTO Room (room_name, floor_number) VALUES + ('Alfa Room', 1), + ('Atlas Room', 1), + ('Nova Room', 2), + ('Fox Room', 2), + ('Sky Room', 3); + `); + + console.log("Inserting sample data into Meeting..."); + await db.query(` + INSERT INTO Meeting (meeting_title, starting_time, ending_time, room_no) VALUES + ('Intro to Databases', '2025-11-20 09:00', '2025-11-20 10:00', 1), + ('SQL Practice', '2025-11-20 10:30', '2025-11-20 11:30', 2), + ('Node & Postgres', '2025-11-21 09:00', '2025-11-21 10:30', 3), + ('Security Session', '2025-11-21 11:00', '2025-11-21 12:00', 4), + ('Retrospective Meetup', '2025-11-22 15:00', '2025-11-22 16:00', 5); + `); + }); + + console.log("Meetup database created and filled with data."); + } catch (err) { + console.error("Error while setting up meetup database:", err.message); + } +} + +setupMeetup().catch((err) => { + console.error("Unexpected error:", err); +}); + diff --git a/Week1/assignment/exer2.js b/Week1/assignment/exer2.js new file mode 100644 index 000000000..2f78aaab5 --- /dev/null +++ b/Week1/assignment/exer2.js @@ -0,0 +1,127 @@ +const { Client } = require("pg"); + +const DB_USER = "hyfuser"; +const DB_PASSWORD = "hyfpassword"; +const DB_HOST = "localhost"; +const DB_PORT = 5432; + +const client = new Client({ + user: DB_USER, + password: DB_PASSWORD, + host: DB_HOST, + port: DB_PORT, + database: "world", +}); + +async function runQuery(label, sql) { + console.log(`\n=== ${label} ===`); + + const result = await client.query(sql); + console.table(result.rows); +} + +async function runWorldQueries() { + + try { + + await client.connect(); + console.log("Connected to world database"); + + await runQuery("1) Countries with population greater than 8 million", + ` + SELECT name, population + FROM country + WHERE population > 8000000 + ORDER BY population DESC; + `); + + await runQuery('2) Countries that have "land" in their names', + ` + SELECT name + FROM country + WHERE name ILIKE '%land%' + ORDER BY name; + `); + + await runQuery("3) Cities with population between 500,000 and 1,000,000", + ` + SELECT name, population + FROM city + WHERE population BETWEEN 500000 AND 1000000 + ORDER BY population; + `); + + await runQuery("4) Countries on the continent 'Europe'", + ` + SELECT name + FROM country + WHERE continent = 'Europe' + ORDER BY name; + `); + + await runQuery("5) Countries ordered by surface area (descending)", + ` + SELECT name, surfacearea + FROM country + ORDER BY surfacearea DESC; + `); + + await runQuery("6) Cities in the Netherlands", + ` + SELECT c.name + FROM city AS c + JOIN country AS co ON c.countrycode = co.code + WHERE co.name = 'Netherlands' + ORDER BY c.name; + `); + + await runQuery("7) Population of Rotterdam", + ` + SELECT population + FROM city + WHERE name = 'Rotterdam'; + `); + + await runQuery("8) Top 10 countries by surface area", + ` + SELECT name, surfacearea + FROM country + ORDER BY surfacearea DESC + LIMIT 10; + `); + + await runQuery( + "9) Top 10 most populated cities", + ` + SELECT name, population + FROM city + ORDER BY population DESC + LIMIT 10; + `); + + await runQuery( + "10) Total world population", + ` + SELECT SUM(population) AS world_population + FROM country; + `); + + + console.log("\n All queries executed successfully."); + + } catch (err) { + + console.error("Error while running world queries:", err.message); + + } finally { + + await client.end(); + + console.log("Connection closed."); + } +} + + +runWorldQueries().catch((err) => { + console.error("Unexpected error:", err); +}); From b7764d1de1fc163eb806fd8053d88f1a05d12721 Mon Sep 17 00:00:00 2001 From: hkarimx Date: Wed, 26 Nov 2025 23:10:01 +0100 Subject: [PATCH 2/5] KARIM- W2 DB assignment added --- Week2/assignment/db.js | 13 +++++ Week2/assignment/ex1.js | 42 ++++++++++++++ Week2/assignment/ex2.js | 124 ++++++++++++++++++++++++++++++++++++++++ Week2/assignment/ex3.js | 48 ++++++++++++++++ Week2/assignment/ex4.js | 83 +++++++++++++++++++++++++++ 5 files changed, 310 insertions(+) create mode 100644 Week2/assignment/db.js create mode 100644 Week2/assignment/ex1.js create mode 100644 Week2/assignment/ex2.js create mode 100644 Week2/assignment/ex3.js create mode 100644 Week2/assignment/ex4.js diff --git a/Week2/assignment/db.js b/Week2/assignment/db.js new file mode 100644 index 000000000..5f1e96f0b --- /dev/null +++ b/Week2/assignment/db.js @@ -0,0 +1,13 @@ +import pg from "pg"; + +const { Pool } = pg; + +const pool = new Pool({ + host: process.env.DB_HOST ?? "localhost", + user: process.env.DB_USER ?? "hyfuser", + password: process.env.DB_PASSWORD ?? "hyfpassword", + database: process.env.DB_NAME ?? "research_w2", + port: Number(process.env.DB_PORT ?? 5432), +}); + +export default pool; diff --git a/Week2/assignment/ex1.js b/Week2/assignment/ex1.js new file mode 100644 index 000000000..0497d03f5 --- /dev/null +++ b/Week2/assignment/ex1.js @@ -0,0 +1,42 @@ +import pool from "./db.js"; + +async function run() { + try { + + await pool.query("DROP TABLE IF EXISTS authors CASCADE;"); + await pool.query(` + CREATE TABLE authors ( + author_id SERIAL PRIMARY KEY, + full_name VARCHAR(120) NOT NULL, + university VARCHAR(120), + date_of_birth DATE, + h_index INTEGER, + gender VARCHAR(10) + ); + `); + + + await pool.query(` + ALTER TABLE authors + ADD COLUMN mentor INTEGER; + `); + + + await pool.query(` + ALTER TABLE authors + ADD CONSTRAINT fk_authors_mentor + FOREIGN KEY (mentor) + REFERENCES authors (author_id) + ON DELETE SET NULL; + `); + + console.log("Exercise 1: authors table + mentor FK created"); + } catch (err) { + console.error("Error in ex1-keys:", err.message); + } finally { + await pool.end(); + console.log("Connection closed"); + } +} + +run(); diff --git a/Week2/assignment/ex2.js b/Week2/assignment/ex2.js new file mode 100644 index 000000000..a54890e5e --- /dev/null +++ b/Week2/assignment/ex2.js @@ -0,0 +1,124 @@ +import pool from "./db.js"; + +const authorRows = [ + ["Noah Clarke", "TU Eindhoven", "1981-04-11", 14, "M"], + ["Mila Verhoef", "Utrecht University", "1986-09-02", 18, "F"], + ["Jonas Peters", "TU Delft", "1979-12-23", 22, "M"], + ["Sara Koster", "University of Twente", "1990-03-19", 11, "F"], + ["Liam de Bruin", "VU Amsterdam", "1984-07-08", 16, "M"], + ["Nadia Rossi", "Leiden University", "1988-01-28", 19, "F"], + ["Omar Haddad", "University of Amsterdam", "1977-10-04", 24, "M"], + ["Elif Kaya", "Radboud University", "1989-06-15", 13, "F"], + ["Lucas Stein", "Ruhr University Bochum", "1982-11-30", 20, "M"], + ["Yara Hussain", "Ghent University", "1991-02-05", 9, "F"], + ["Tobias Meier", "ETH Zürich", "1980-08-12", 26, "M"], + ["Rosa Almeida", "University of Porto", "1987-05-27", 17, "F"], + ["Imran Malik", "KU Leuven", "1992-01-09", 7, "M"], + ["Emma Jansen", "Hanze University", "1993-09-14", 5, "F"], + ["Felix Novak", "Charles University", "1985-12-03", 12, "M"], +]; + +async function seedAuthors() { + + await pool.query("TRUNCATE TABLE authors RESTART IDENTITY CASCADE;"); + + const insertSql = ` + INSERT INTO authors (full_name, university, date_of_birth, h_index, gender) + VALUES ($1, $2, $3, $4, $5); + `; + + for (const row of authorRows) { + await pool.query(insertSql, row); + } + + await pool.query("UPDATE authors SET mentor = 3 WHERE author_id = 1;"); + await pool.query("UPDATE authors SET mentor = 3 WHERE author_id = 2;"); + await pool.query("UPDATE authors SET mentor = 5 WHERE author_id = 4;"); + await pool.query("UPDATE authors SET mentor = 2 WHERE author_id = 5;"); + await pool.query("UPDATE authors SET mentor = 7 WHERE author_id = 6;"); + await pool.query("UPDATE authors SET mentor = 1 WHERE author_id = 8;"); + await pool.query("UPDATE authors SET mentor = 10 WHERE author_id = 9;"); + await pool.query("UPDATE authors SET mentor = 11 WHERE author_id = 10;"); + await pool.query("UPDATE authors SET mentor = 4 WHERE author_id = 11;"); + await pool.query("UPDATE authors SET mentor = 6 WHERE author_id = 12;"); + +} + +async function createPaperTables() { + await pool.query("DROP TABLE IF EXISTS authors_papers;"); + await pool.query("DROP TABLE IF EXISTS research_papers;"); + + await pool.query(` + CREATE TABLE research_papers ( + paper_id SERIAL PRIMARY KEY, + paper_title VARCHAR(200) NOT NULL, + conference VARCHAR(100), + publish_date DATE + ); + `); + + await pool.query(` + CREATE TABLE authors_papers ( + author_id INTEGER REFERENCES authors(author_id) ON DELETE CASCADE, + paper_id INTEGER REFERENCES research_papers(paper_id) ON DELETE CASCADE, + PRIMARY KEY (author_id, paper_id) + ); + `); +} + +async function seedPapersAndLinks() { + + for (let i = 1; i <= 30; i += 1) { + await pool.query( + ` + INSERT INTO research_papers (paper_title, conference, publish_date) + VALUES ($1, $2, $3); + `, + [`Study on Databases ${i}`, `DataConf ${((i - 1) % 5) + 1}`, `202${i % 4}-0${((i - 1) % 9) + 1}-15`] + ); + } + + + const links = [ + [1, 1], [1, 2], [2, 3], + [3, 4], [3, 5], + [4, 6], + [5, 7], [5, 8], [5, 9], + [6, 10], + [7, 11], [7, 12], + [8, 13], + [9, 14], [9, 15], + [10, 16], [10, 17], + [11, 18], [11, 19], [11, 20], + [12, 21], + [13, 22], + [14, 23], [14, 24], + [1, 25], [2, 26], [3, 27], [4, 28], [6, 29], [7, 30], + ]; + + for (const [authorId, paperId] of links) { + await pool.query( + ` + INSERT INTO authors_papers (author_id, paper_id) + VALUES ($1, $2); + `, + [authorId, paperId] + ); + } +} + +async function run() { + try { + await createPaperTables(); + await seedAuthors(); + await seedPapersAndLinks(); + console.log("Exercise 2: tables created and data inserted"); + } catch (err) { + console.error("Error in ex2-relationships:", err.message); + } finally { + await pool.end(); + console.log("Connection closed"); + } +} + +run(); diff --git a/Week2/assignment/ex3.js b/Week2/assignment/ex3.js new file mode 100644 index 000000000..6357e4e3f --- /dev/null +++ b/Week2/assignment/ex3.js @@ -0,0 +1,48 @@ +import pool from "./db.js"; + +async function run() { + try { + + const q1 = ` + SELECT + a.author_id, + a.full_name AS author_name, + m.full_name AS mentor_name + FROM authors a + LEFT JOIN authors m + ON a.mentor = m.author_id + ORDER BY a.author_id; + `; + const res1 = await pool.query(q1); + console.log("\nAuthors with their mentors"); + console.table(res1.rows); + + + const q2 = ` + SELECT + a.author_id, + a.full_name, + a.university, + a.date_of_birth, + a.h_index, + a.gender, + rp.paper_title + FROM authors a + LEFT JOIN authors_papers ap + ON a.author_id = ap.author_id + LEFT JOIN research_papers rp + ON ap.paper_id = rp.paper_id + ORDER BY a.author_id, rp.paper_title; + `; + const res2 = await pool.query(q2); + console.log("\nAuthors with their paper titles (if any)"); + console.table(res2.rows); + } catch (err) { + console.error("Error in ex3-joins:", err.message); + } finally { + await pool.end(); + console.log("Connection closed"); + } +} + +run(); diff --git a/Week2/assignment/ex4.js b/Week2/assignment/ex4.js new file mode 100644 index 000000000..a44c25e3b --- /dev/null +++ b/Week2/assignment/ex4.js @@ -0,0 +1,83 @@ +import pool from "./db.js"; + +async function run() { + try { + + const q1 = ` + SELECT + rp.paper_id, + rp.paper_title, + COUNT(ap.author_id) AS author_count + FROM research_papers rp + LEFT JOIN authors_papers ap + ON rp.paper_id = ap.paper_id + GROUP BY rp.paper_id, rp.paper_title + ORDER BY rp.paper_id; + `; + const res1 = await pool.query(q1); + console.log("\n1) Papers and number of authors"); + console.table(res1.rows); + + const q2 = ` + SELECT + COUNT(DISTINCT ap.paper_id) AS total_papers_by_female_authors + FROM authors a + JOIN authors_papers ap + ON a.author_id = ap.author_id + WHERE a.gender = 'F'; + `; + + const res2 = await pool.query(q2); + console.log("\n2) Total papers by female authors"); + console.table(res2.rows); + + const q3 = ` + SELECT + university, + AVG(h_index) AS average_h_index + FROM authors + GROUP BY university + ORDER BY university; + `; + + const res3 = await pool.query(q3); + console.log("\n3) Average h-index per university"); + console.table(res3.rows); + + + const q4 = ` + SELECT + a.university, + COUNT(DISTINCT ap.paper_id) AS total_papers + FROM authors a + LEFT JOIN authors_papers ap + ON a.author_id = ap.author_id + GROUP BY a.university + ORDER BY a.university; + `; + const res4 = await pool.query(q4); + console.log("\n4) Total papers per university"); + console.table(res4.rows); + + const q5 = ` + SELECT + university, + MIN(h_index) AS min_h_index, + MAX(h_index) AS max_h_index + FROM authors + GROUP BY university + ORDER BY university; + `; + + const res5 = await pool.query(q5); + console.log("\n5) Min/Max h-index per university"); + console.table(res5.rows); + } catch (err) { + console.error("Error in ex4-aggregate-functions:", err.message); + } finally { + await pool.end(); + console.log("Connection closed"); + } +} + +run(); From 9298aa37bbda80552a13c3bfb4dd77be999be71c Mon Sep 17 00:00:00 2001 From: hkarimx Date: Thu, 4 Dec 2025 00:37:11 +0100 Subject: [PATCH 3/5] Week 3 DB added --- Week3/assignment/db-client.js | 13 ++++ Week3/assignment/exe-3.1.md | 59 +++++++++++++++ Week3/assignment/injection.js | 11 +++ Week3/assignment/transaction.js | 47 ++++++++++++ .../assignment/transactions-create-tables.js | 35 +++++++++ .../assignment/transactions-insert-values.js | 30 ++++++++ Week3/homework/mongodb/index.js | 71 +++++++++++++++++-- 7 files changed, 260 insertions(+), 6 deletions(-) create mode 100644 Week3/assignment/db-client.js create mode 100644 Week3/assignment/exe-3.1.md create mode 100644 Week3/assignment/injection.js create mode 100644 Week3/assignment/transaction.js create mode 100644 Week3/assignment/transactions-create-tables.js create mode 100644 Week3/assignment/transactions-insert-values.js diff --git a/Week3/assignment/db-client.js b/Week3/assignment/db-client.js new file mode 100644 index 000000000..6cb394b1e --- /dev/null +++ b/Week3/assignment/db-client.js @@ -0,0 +1,13 @@ +const { Client } = require("pg"); + +function createClient() { + return new Client({ + user: "hyfuser", + password: "hyfpassword", + host: "localhost", + port: 5432, + database: "world", + }); +} + +module.exports = { createClient }; diff --git a/Week3/assignment/exe-3.1.md b/Week3/assignment/exe-3.1.md new file mode 100644 index 000000000..7d0e5e48b --- /dev/null +++ b/Week3/assignment/exe-3.1.md @@ -0,0 +1,59 @@ +# 3.1 – SQL Normalization + +## 1. What columns violate 1NF? + +1NF says: each column must contain **atomic (single) values**, no lists. + +In the given table the columns that violate 1NF are: + +- `food_code` – contains multiple values in one cell (e.g. `C1, C2`) +- `food_description` – also contains multiple values in one cell + that belong to different food items (e.g. `Curry, Cake`) + +So: **`food_code` and `food_description` violate 1NF.** + +--- + +## 2. What entities do you recognize that could be extracted? + +From the table we can recognise at least these entities: + +- **Member** – information about the club member +- **Dinner** – a specific dinner event for a member +- **Venue** – where the dinner takes place +- **Food** – the types of food served at a dinner + +--- + +## 3. Name all the tables and columns that would make a 3NF solution + +A 3NF-compliant design could be: + +### `members` + +- `member_id` (PK) +- `member_name` +- `member_address` + +### `venues` + +- `venue_code` (PK) +- `venue_description` + +### `dinners` + +- `dinner_id` (PK) +- `member_id` (FK → members.member_id) +- `dinner_date` +- `venue_code` (FK → venues.venue_code) + +### `foods` + +- `food_code` (PK) +- `food_description` + +### `dinner_foods` (link table, because one dinner has many foods) + +- `dinner_id` (FK → dinners.dinner_id) +- `food_code` (FK → foods.food_code) +- **PK** on (`dinner_id`, `food_code`) diff --git a/Week3/assignment/injection.js b/Week3/assignment/injection.js new file mode 100644 index 000000000..42101efa8 --- /dev/null +++ b/Week3/assignment/injection.js @@ -0,0 +1,11 @@ +function getPopulation(Country, name, code, cb) { + + const sql = `SELECT population FROM ${Country} WHERE name = $1 AND code = $2`; + + conn.query(sql, [name, code], function (err, result) { + if (err) return cb(err); + if (result.rows.length === 0) return cb(new Error("Not found")); + + cb(null, result.rows[0].population); + }); +} diff --git a/Week3/assignment/transaction.js b/Week3/assignment/transaction.js new file mode 100644 index 000000000..9518b3db0 --- /dev/null +++ b/Week3/assignment/transaction.js @@ -0,0 +1,47 @@ +const { createClient } = require("./db-client"); + +async function main() { + const client = createClient(); + + const fromAcc = 101; + const toAcc = 102; + const amount = 1000.0; + + try { + await client.connect(); + await client.query("BEGIN"); + + await client.query( + "UPDATE account SET balance = balance - $1 WHERE account_number = $2", + [amount, fromAcc] + ); + + await client.query( + `INSERT INTO account_changes (account_number, amount, remark) + VALUES ($1, $2, $3)`, + [fromAcc, -amount, "Transfer to 102"] + ); + + await client.query( + "UPDATE account SET balance = balance + $1 WHERE account_number = $2", + [amount, toAcc] + ); + + await client.query( + `INSERT INTO account_changes (account_number, amount, remark) + VALUES ($1, $2, $3)`, + [toAcc, amount, "Transfer from 101"] + ); + + + await client.query("COMMIT"); + console.log("Transferred 1000 from 101 to 102 in a single transaction."); + } catch (err) { + console.error("Error, rolling back:", err); + await client.query("ROLLBACK"); + } finally { + await client.end(); + } +} + +main(); diff --git a/Week3/assignment/transactions-create-tables.js b/Week3/assignment/transactions-create-tables.js new file mode 100644 index 000000000..f3913530c --- /dev/null +++ b/Week3/assignment/transactions-create-tables.js @@ -0,0 +1,35 @@ +const { createClient } = require("./db-client"); + +async function main() { + const client = createClient(); + + const createTablesSql = ` + DROP TABLE IF EXISTS account_changes; + DROP TABLE IF EXISTS account; + + CREATE TABLE account ( + account_number INTEGER PRIMARY KEY, + balance NUMERIC(12, 2) NOT NULL + ); + + CREATE TABLE account_changes ( + change_number SERIAL PRIMARY KEY, + account_number INTEGER NOT NULL REFERENCES account(account_number), + amount NUMERIC(12, 2) NOT NULL, + changed_date TIMESTAMP NOT NULL DEFAULT NOW(), + remark TEXT + ); + `; + + try { + await client.connect(); + await client.query(createTablesSql); + console.log("Tables 'account' and 'account_changes' created."); + } catch (err) { + console.error("Error creating tables:", err); + } finally { + await client.end(); + } +} + +main(); diff --git a/Week3/assignment/transactions-insert-values.js b/Week3/assignment/transactions-insert-values.js new file mode 100644 index 000000000..f61472120 --- /dev/null +++ b/Week3/assignment/transactions-insert-values.js @@ -0,0 +1,30 @@ +const { createClient } = require("./db-client"); + +async function main() { + const client = createClient(); + + const insertSql = ` + INSERT INTO account (account_number, balance) + VALUES + (101, 5000.00), + (102, 2000.00) + ON CONFLICT (account_number) DO NOTHING; + + INSERT INTO account_changes (account_number, amount, remark) + VALUES + (101, 5000.00, 'Initial deposit'), + (102, 2000.00, 'Initial deposit'); + `; + + try { + await client.connect(); + await client.query(insertSql); + console.log("Sample data inserted into 'account' and 'account_changes'."); + } catch (err) { + console.error("Error inserting data:", err); + } finally { + await client.end(); + } +} + +main(); diff --git a/Week3/homework/mongodb/index.js b/Week3/homework/mongodb/index.js index 41ee8b618..f942c4649 100644 --- a/Week3/homework/mongodb/index.js +++ b/Week3/homework/mongodb/index.js @@ -1,3 +1,5 @@ +require("dotenv").config(); + const { MongoClient, ServerApiVersion } = require("mongodb"); const { seedDatabase } = require("./seedDatabase.js"); @@ -12,6 +14,17 @@ async function createEpisodeExercise(client) { */ // Write code that will add this to the collection! + const collection = client + .db("databaseweek3") + .collection("bob_ross_episodes"); + + const newEpisode = { + episode: "S09E13", + title: "MOUNTAIN HIDE-AWAY", + elements: ["CIRRUS", "CLOUDS", "CONIFER", "DECIDIOUS", "GRASS", "MOUNTAIN", "MOUNTAINS", "RIVER", "SNOWY_MOUNTAIN", "TREE", "TREES"], +}; + + const result = await collection.insertOne(newEpisode); console.log( `Created season 9 episode 13 and the document got the id ${"TODO: fill in variable here"}` @@ -23,26 +36,53 @@ async function findEpisodesExercises(client) { * Complete the following exercises. * The comments indicate what to do and what the result should be! */ + const collection = client + .db("databaseweek3") + .collection("bob_ross_episodes"); // Find the title of episode 2 in season 2 [Should be: WINTER SUN] + const s02e02 = await collection.findOne( + { episode: "S02E02" }, + { projection: { title: 1, _id: 0 }} +); + const winterSunTitle = s02e02.title; console.log( `The title of episode 2 in season 2 is ${"TODO: fill in variable here"}` ); // Find the season and episode number of the episode called "BLACK RIVER" [Should be: S02E06] + const blackRiver = await collection.findOne( + { title: "BLACK RIVER" }, + { projection: { episode: 1, _id: 0 } } +); + + const blackRiverCode = blackRiver?.episode; console.log( `The season and episode number of the "BLACK RIVER" episode is ${"TODO: fill in variable here"}` ); // Find all of the episode titles where Bob Ross painted a CLIFF [Should be: NIGHT LIGHT, EVENING SEASCAPE, SURF'S UP, CLIFFSIDE, BY THE SEA, DEEP WILDERNESS HOME, CRIMSON TIDE, GRACEFUL WATERFALL] + const cliffEpisodes = await collection + .find({ elements: "CLIFF" }, { projection: { title: 1, _id: 0 } }) + .toArray(); + const cliffTitles = cliffEpisodes.map((doc) => doc.title).join(", "); console.log( `The episodes that Bob Ross painted a CLIFF are ${"TODO: fill in variable here"}` ); // Find all of the episode titles where Bob Ross painted a CLIFF and a LIGHTHOUSE [Should be: NIGHT LIGHT] + const cliffLighthouseEpisodes = await collection + .find( + { elements: { $all: ["CLIFF", "LIGHTHOUSE"] } }, + { projection: { title: 1, _id: 0 } } + ) + .toArray(); + const cliffLighthouseTitles = cliffLighthouseEpisodes + .map((doc) => doc.title) + .join(", "); console.log( `The episodes that Bob Ross painted a CLIFF and a LIGHTHOUSE are ${"TODO: fill in variable here"}` @@ -56,8 +96,15 @@ async function updateEpisodeExercises(client) { * * Note: do NOT change the data.json file */ + const collection = client + .db("databaseWeek3") + .collection("bob_ross_episodes"); // Episode 13 in season 30 should be called BLUE RIDGE FALLS, yet it is called BLUE RIDGE FALLERS now. Fix that + const titleResult = await collection.updateOne( + { episode: "S30E13" }, + { $set: { title: "BLUE RIDGE FALLS" } } + ); console.log( `Ran a command to update episode 13 in season 30 and it updated ${"TODO: fill in variable here"} episodes` @@ -66,6 +113,10 @@ async function updateEpisodeExercises(client) { // Unfortunately we made a mistake in the arrays and the element type called 'BUSHES' should actually be 'BUSH' as sometimes only one bush was painted. // Update all of the documents in the collection that have `BUSHES` in the elements array to now have `BUSH` // It should update 120 episodes! + const bushesResult = await collection.updateMany( + { elements: "BUSHES" }, + { $set: { "elements.$": "BUSH" } } // change the matched element in the array + ); console.log( `Ran a command to update all the BUSHES to BUSH and it updated ${"TODO: fill in variable here"} episodes` @@ -77,6 +128,11 @@ async function deleteEpisodeExercise(client) { * It seems an errand episode has gotten into our data. * This is episode 14 in season 31. Please remove it and verify that it has been removed! */ + const collection = client + .db("databaseWeek3") + .collection("bob_ross_episodes"); + + const deleteResult = await collection.deleteOne({ episode: "S31E14" }); console.log( `Ran a command to delete episode and it deleted ${"TODO: fill in variable here"} episodes` @@ -89,13 +145,16 @@ async function main() { `You did not set up the environment variables correctly. Did you create a '.env' file and add a package to create it?` ); } - const client = new MongoClient(process.env.MONGODB_URL, { - useNewUrlParser: true, - useUnifiedTopology: true, - serverApi: ServerApiVersion.v1, - }); - try { + const client = new MongoClient(process.env.MONGODB_URL, { + serverApi: { + version: ServerApiVersion.v1, + strict: true, + deprecationErrors: true, + }, + }); + + try { await client.connect(); // Seed our database From f37220dc906072404df22ec561a284355e7f5dd7 Mon Sep 17 00:00:00 2001 From: hkarimx Date: Wed, 10 Dec 2025 22:10:00 +0100 Subject: [PATCH 4/5] W4 DB added --- Week4/homework/ex1-aggregation/aggregation.js | 149 ++++++++++++++++++ Week4/homework/ex2-transactions/setup.js | 80 ++++++++++ Week4/homework/ex2-transactions/transfer.js | 106 +++++++++++++ 3 files changed, 335 insertions(+) create mode 100644 Week4/homework/ex1-aggregation/aggregation.js create mode 100644 Week4/homework/ex2-transactions/setup.js create mode 100644 Week4/homework/ex2-transactions/transfer.js diff --git a/Week4/homework/ex1-aggregation/aggregation.js b/Week4/homework/ex1-aggregation/aggregation.js new file mode 100644 index 000000000..b908956cc --- /dev/null +++ b/Week4/homework/ex1-aggregation/aggregation.js @@ -0,0 +1,149 @@ +const { MongoClient } = require("mongodb"); +const fs = require("fs"); +const path = require("path"); + +const uri = "mongodb://localhost:27017"; +const dbName = "databaseweek4"; +const collectionName = "population"; + + +async function withCollection(callback) { + const client = new MongoClient(uri); + + try { + await client.connect(); + const db = client.db(dbName); + const collection = db.collection(collectionName); + return await callback(collection); + } finally { + await client.close(); + } +} + + +async function importCsv() { + return withCollection(async (collection) => { + console.log("Clearing existing population data..."); + await collection.deleteMany({}); + + const csvPath = path.join(__dirname, "population_pyramid_1950-2022.csv"); + const csvText = fs.readFileSync(csvPath, "utf-8"); + + const lines = csvText.split("\n").slice(1); + const docs = []; + + for (const rawLine of lines) { + const line = rawLine.trim(); + if (!line) continue; + + const [country, yearStr, age, mStr, fStr] = line.split(","); + + docs.push({ + Country: country.trim(), + Year: Number(yearStr), + Age: age.trim(), + M: Number(mStr), + F: Number(fStr), + }); + } + + if (docs.length === 0) { + console.warn("No data found in CSV – check the file."); + return; + } + + await collection.insertMany(docs); + console.log(`Inserted ${docs.length} population documents.`); + }); +} + + +async function getTotalPopulationPerYear(countryName) { + return withCollection(async (collection) => { + const results = await collection + .aggregate([ + { $match: { Country: countryName } }, + { + $group: { + _id: "$Year", + countPopulation: { + $sum: { $add: ["$M", "$F"] }, + }, + }, + }, + { $sort: { _id: 1 } }, + ]) + .toArray(); + + return results; + }); +} + + +async function getContinentsByYearAndAge(year, age) { + const continents = [ + "AFRICA", + "ASIA", + "EUROPE", + "LATIN AMERICA AND THE CARIBBEAN", + "NORTHERN AMERICA", + "OCEANIA", + ]; + + return withCollection(async (collection) => { + const results = await collection + .aggregate([ + { + $match: { + Year: year, + Age: age, + Country: { $in: continents }, + }, + }, + { + + $group: { + _id: "$Country", + Country: { $first: "$Country" }, + Year: { $first: "$Year" }, + Age: { $first: "$Age" }, + M: { $sum: "$M" }, + F: { $sum: "$F" }, + }, + }, + { + $addFields: { + TotalPopulation: { $add: ["$M", "$F"] }, + }, + }, + { $sort: { Country: 1 } }, + ]) + .toArray(); + + return results; + }); +} + + +async function main() { + console.log("=== Importing CSV into MongoDB ==="); + await importCsv(); + + console.log("\n=== Exercise 1.2 – Netherlands total population per year ==="); + const nl = await getTotalPopulationPerYear("Netherlands"); + console.log(JSON.stringify(nl, null, 2)); + + console.log('\n=== Exercise 1.3 – Continents (Year: 2020, Age: "100+") ==='); + const continents = await getContinentsByYearAndAge(2020, "100+"); + console.log(JSON.stringify(continents, null, 2)); +} + +module.exports = { + importCsv, + getTotalPopulationPerYear, + getContinentsByYearAndAge, +}; + +if (require.main === module) { + main().catch(console.error); +} diff --git a/Week4/homework/ex2-transactions/setup.js b/Week4/homework/ex2-transactions/setup.js new file mode 100644 index 000000000..ef4540b81 --- /dev/null +++ b/Week4/homework/ex2-transactions/setup.js @@ -0,0 +1,80 @@ +const { MongoClient } = require("mongodb"); + +const uri = "mongodb://localhost:27017"; +const dbName = "databaseweek4"; +const collectionName = "accounts"; + +async function setupAccounts() { + const client = new MongoClient(uri); + + try { + await client.connect(); + console.log("Connected to MongoDB for setup"); + + const db = client.db(dbName); + const collection = db.collection(collectionName); + + + await collection.deleteMany({}); + console.log("Cleared existing accounts"); + + const now = new Date(); + + + const accounts = [ + { + account_number: 101, + balance: 5000, + account_changes: [ + { + change_number: 1, + amount: 5000, + changed_date: now, + remark: "Initial deposit", + }, + ], + }, + { + account_number: 102, + balance: 3000, + account_changes: [ + { + change_number: 1, + amount: 3000, + changed_date: now, + remark: "Initial deposit", + }, + ], + }, + { + account_number: 103, + balance: 7500, + account_changes: [ + { + change_number: 1, + amount: 7500, + changed_date: now, + remark: "Initial deposit", + }, + ], + }, + ]; + + await collection.insertMany(accounts); + console.log(`Created ${accounts.length} accounts`); + + const allAccounts = await collection.find({}).toArray(); + console.log("\nAccounts created:"); + allAccounts.forEach((acc) => { + console.log(`Account ${acc.account_number}: Balance = ${acc.balance}`); + }); + } finally { + await client.close(); + } +} + +module.exports = { setupAccounts }; + +if (require.main === module) { + setupAccounts().catch(console.error); +} diff --git a/Week4/homework/ex2-transactions/transfer.js b/Week4/homework/ex2-transactions/transfer.js new file mode 100644 index 000000000..cdaf7dd08 --- /dev/null +++ b/Week4/homework/ex2-transactions/transfer.js @@ -0,0 +1,106 @@ +const { MongoClient } = require("mongodb"); + +const uri = "mongodb://localhost:27017"; +const dbName = "databaseweek4"; +const collectionName = "accounts"; + + +async function transfer(fromAccount, toAccount, amount, remark) { + const client = new MongoClient(uri); + + try { + await client.connect(); + const db = client.db(dbName); + const accounts = db.collection(collectionName); + + + const [from, to] = await Promise.all([ + accounts.findOne({ account_number: fromAccount }), + accounts.findOne({ account_number: toAccount }), + ]); + + if (!from) throw new Error(`Account ${fromAccount} not found`); + if (!to) throw new Error(`Account ${toAccount} not found`); + if (amount <= 0) throw new Error("Amount must be positive"); + if (from.balance < amount) { + throw new Error(`Insufficient balance in account ${fromAccount}`); + } + + + const latestChange = await accounts + .aggregate([ + { + $unwind: { + path: "$account_changes", + preserveNullAndEmptyArrays: true, + }, + }, + { $group: { _id: null, maxChange: { $max: "$account_changes.change_number" } } }, + ]) + .toArray(); + + const currentMax = latestChange[0]?.maxChange || 0; + const nextChangeNumber = currentMax + 1; + const now = new Date(); + + + const senderResult = await accounts.updateOne( + { account_number: fromAccount }, + { + $inc: { balance: -amount }, + $push: { + account_changes: { + change_number: nextChangeNumber, + amount: -amount, + changed_date: now, + remark, + }, + }, + } + ); + + const receiverResult = await accounts.updateOne( + { account_number: toAccount }, + { + $inc: { balance: amount }, + $push: { + account_changes: { + change_number: nextChangeNumber, + amount, + changed_date: now, + remark, + }, + }, + } + ); + + if (senderResult.modifiedCount !== 1 || receiverResult.modifiedCount !== 1) { + throw new Error("Transfer failed to update one or both accounts"); + } + + console.log( + `Transfer successful: ${amount} from ${fromAccount} to ${toAccount} (change #${nextChangeNumber})` + ); + + + const updated = await accounts + .find({ account_number: { $in: [fromAccount, toAccount] } }) + .project({ _id: 0 }) + .toArray(); + + console.log("Updated accounts:"); + console.log(JSON.stringify(updated, null, 2)); + } finally { + await client.close(); + } +} + + +if (require.main === module) { + transfer(101, 102, 1000, "Payment for services").catch((err) => { + console.error("Transfer error:", err.message); + process.exit(1); + }); +} + +module.exports = { transfer }; From fe2d7860cf23b3922ed7d61a1d91364ecd7f038a Mon Sep 17 00:00:00 2001 From: hkarimx Date: Sun, 21 Dec 2025 17:28:50 +0100 Subject: [PATCH 5/5] Week4 fixed --- Week4/homework/ex1-aggregation/output1.png | Bin 0 -> 74690 bytes Week4/homework/ex1-aggregation/output2.png | Bin 0 -> 50500 bytes Week4/homework/ex2-transactions/transfer.js | 172 +++++---- .../ex2-transactions/transferOutPut.png | Bin 0 -> 83548 bytes package-lock.json | 327 ++++++++++++++++++ package.json | 25 ++ 6 files changed, 450 insertions(+), 74 deletions(-) create mode 100644 Week4/homework/ex1-aggregation/output1.png create mode 100644 Week4/homework/ex1-aggregation/output2.png create mode 100644 Week4/homework/ex2-transactions/transferOutPut.png create mode 100644 package-lock.json create mode 100644 package.json diff --git a/Week4/homework/ex1-aggregation/output1.png b/Week4/homework/ex1-aggregation/output1.png new file mode 100644 index 0000000000000000000000000000000000000000..1d90928c18c95ef1e2ce5faf89f96f31714e1fec GIT binary patch literal 74690 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�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 literal 0 HcmV?d00001 diff --git a/Week4/homework/ex2-transactions/transfer.js b/Week4/homework/ex2-transactions/transfer.js index cdaf7dd08..8b2df5be4 100644 --- a/Week4/homework/ex2-transactions/transfer.js +++ b/Week4/homework/ex2-transactions/transfer.js @@ -13,83 +13,107 @@ async function transfer(fromAccount, toAccount, amount, remark) { const db = client.db(dbName); const accounts = db.collection(collectionName); - - const [from, to] = await Promise.all([ - accounts.findOne({ account_number: fromAccount }), - accounts.findOne({ account_number: toAccount }), - ]); - - if (!from) throw new Error(`Account ${fromAccount} not found`); - if (!to) throw new Error(`Account ${toAccount} not found`); - if (amount <= 0) throw new Error("Amount must be positive"); - if (from.balance < amount) { - throw new Error(`Insufficient balance in account ${fromAccount}`); - } - - - const latestChange = await accounts - .aggregate([ - { - $unwind: { - path: "$account_changes", - preserveNullAndEmptyArrays: true, - }, - }, - { $group: { _id: null, maxChange: { $max: "$account_changes.change_number" } } }, - ]) - .toArray(); - - const currentMax = latestChange[0]?.maxChange || 0; - const nextChangeNumber = currentMax + 1; - const now = new Date(); - - - const senderResult = await accounts.updateOne( - { account_number: fromAccount }, - { - $inc: { balance: -amount }, - $push: { - account_changes: { - change_number: nextChangeNumber, - amount: -amount, - changed_date: now, - remark, + const session = client.startSession(); + + try { + + await session.withTransaction(async () => { + const [from, to] = await Promise.all([ + accounts.findOne({ account_number: fromAccount }, { session }), + accounts.findOne({ account_number: toAccount }, { session }), + ]); + + if (!from) throw new Error(`Account ${fromAccount} not found`); + if (!to) throw new Error(`Account ${toAccount} not found`); + if (amount <= 0) throw new Error("Amount must be positive"); + if (from.balance < amount) { + throw new Error(`Insufficient balance in account ${fromAccount}`); + } + + + const latestChange = await accounts + .aggregate( + [ + { + $unwind: { + path: "$account_changes", + preserveNullAndEmptyArrays: true, + }, + }, + { + $group: { + _id: null, + maxChange: { $max: "$account_changes.change_number" }, + }, + }, + ], + { session } + ) + .toArray(); + + const currentMax = latestChange[0]?.maxChange || 0; + const nextChangeNumber = currentMax + 1; + const now = new Date(); + + + const senderResult = await accounts.updateOne( + { account_number: fromAccount }, + { + $inc: { balance: -amount }, + $push: { + account_changes: { + change_number: nextChangeNumber, + amount: -amount, + changed_date: now, + remark, + }, + }, }, - }, - } - ); - - const receiverResult = await accounts.updateOne( - { account_number: toAccount }, - { - $inc: { balance: amount }, - $push: { - account_changes: { - change_number: nextChangeNumber, - amount, - changed_date: now, - remark, + { session } + ); + + const receiverResult = await accounts.updateOne( + { account_number: toAccount }, + { + $inc: { balance: amount }, + $push: { + account_changes: { + change_number: nextChangeNumber, + amount, + changed_date: now, + remark, + }, + }, }, - }, - } - ); - - if (senderResult.modifiedCount !== 1 || receiverResult.modifiedCount !== 1) { - throw new Error("Transfer failed to update one or both accounts"); + { session } + ); + + if ( + senderResult.modifiedCount !== 1 || + receiverResult.modifiedCount !== 1 + ) { + throw new Error("Transfer failed to update one or both accounts"); + } + }); + + + console.log( + `Transfer successful: ${amount} from ${fromAccount} to ${toAccount}` + ); + + const updated = await accounts + .find( + { account_number: { $in: [fromAccount, toAccount] } }, + { projection: { _id: 0 } } + ) + .toArray(); + + console.log("Updated accounts:"); + console.log(JSON.stringify(updated, null, 2)); + } finally { + + await session.endSession(); } - - console.log( - `Transfer successful: ${amount} from ${fromAccount} to ${toAccount} (change #${nextChangeNumber})` - ); - - - const updated = await accounts - .find({ account_number: { $in: [fromAccount, toAccount] } }) - .project({ _id: 0 }) - .toArray(); - - console.log("Updated accounts:"); - console.log(JSON.stringify(updated, null, 2)); } finally { await client.close(); } diff --git a/Week4/homework/ex2-transactions/transferOutPut.png b/Week4/homework/ex2-transactions/transferOutPut.png new file mode 100644 index 0000000000000000000000000000000000000000..125169bad1674e126696174a8c5c52ec4d2c5362 GIT binary patch literal 83548 zcmb4rWmFv5x^@y02o@kfa0nr|LvRZO2?Td<+}*Va8l2$n?!ldg;O_43t_?JNO=iwL zXXa$?`tA=_ud1f2YwxPs@AE#=0n(Bp$OyOyPo6wM7X2(J`{c>fr6*5d9ACmh_t*|g zpF&@r+RBOuJSiE(-+^vCH{_S#fAXX(4Dn9;1#}zU>a&XNlP9m*9{-+pS?1|IdGe4g zD#$PIq`AM~s4lN`fBi5;!0D~=5tSzGD`rQamolSHP-osqTzi~Z`JrQlfybUq0@BahkWQ*h;Y- zs&kCHO0qrT5rN<3QWkn?JtvF%5JXnFmOZb%Hgza7-17c2~u19n*7uG zj^9y-_nIvc#Mj@di`C5#rBiu5`qpC1oN%de-S*Dz4jWD<(W#N7f;3F})Ul}y~^ z9iBDgH(|Cb{bhFCOH@scen z=D2~5s%v2Y2-tjcA(es;=G!X`fvMrfiyw-7dk3~!EsaYy9t}>_z#Ce)$h4t$ikny= z+dG?pjYFRw0TQiBj4|57c*B^u$Jp$l7HmMhsiCQny)OmNN+0_9D$Md=vb_zfllfx;POwAL)I-d5H5ey*|)Z!u#wT{P@mJT_Ht2`I#tQi@x+!P>8Ve(p* z6jJAo4Q*!n;fUXIM^32ST11i2iJT2m!pYw%kySqX)ToP!4vWW8zVR{^3HDq_UxCQ1 z;1l^z!y&_w`FwF4bOEUv_1CXUD9mQEC0K`lz_i)X$*c~%lX!`=z&VkqG zTNP<`=yDi+T%�X)uR3_8)nH=^_V;G>}dqWc1RT?6Fh*-4aX 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 z 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 literal 0 HcmV?d00001 diff --git a/package-lock.json b/package-lock.json new file mode 100644 index 000000000..e5a0181e8 --- /dev/null +++ b/package-lock.json @@ -0,0 +1,327 @@ +{ + "name": "databases-cohort54", + "version": "1.0.0", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "databases-cohort54", + "version": "1.0.0", + "license": "ISC", + "dependencies": { + "dotenv": "^17.2.3", + "mongodb": "^7.0.0", + "pg": "^8.16.3" + }, + "devDependencies": {} + }, + "node_modules/@mongodb-js/saslprep": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/@mongodb-js/saslprep/-/saslprep-1.3.2.tgz", + "integrity": "sha512-QgA5AySqB27cGTXBFmnpifAi7HxoGUeezwo6p9dI03MuDB6Pp33zgclqVb6oVK3j6I9Vesg0+oojW2XxB59SGg==", + "license": "MIT", + "dependencies": { + "sparse-bitfield": "^3.0.3" + } + }, + "node_modules/@types/webidl-conversions": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/@types/webidl-conversions/-/webidl-conversions-7.0.3.tgz", + "integrity": "sha512-CiJJvcRtIgzadHCYXw7dqEnMNRjhGZlYK05Mj9OyktqV8uVT8fD2BFOB7S1uwBE3Kj2Z+4UyPmFw/Ixgw/LAlA==", + "license": "MIT" + }, + "node_modules/@types/whatwg-url": { + "version": "13.0.0", + "resolved": "https://registry.npmjs.org/@types/whatwg-url/-/whatwg-url-13.0.0.tgz", + "integrity": "sha512-N8WXpbE6Wgri7KUSvrmQcqrMllKZ9uxkYWMt+mCSGwNc0Hsw9VQTW7ApqI4XNrx6/SaM2QQJCzMPDEXE058s+Q==", + "license": "MIT", + "dependencies": { + "@types/webidl-conversions": "*" + } + }, + "node_modules/bson": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/bson/-/bson-7.0.0.tgz", + "integrity": "sha512-Kwc6Wh4lQ5OmkqqKhYGKIuELXl+EPYSCObVE6bWsp1T/cGkOCBN0I8wF/T44BiuhHyNi1mmKVPXk60d41xZ7kw==", + "license": "Apache-2.0", + "engines": { + "node": ">=20.19.0" + } + }, + "node_modules/dotenv": { + "version": "17.2.3", + "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-17.2.3.tgz", + "integrity": "sha512-JVUnt+DUIzu87TABbhPmNfVdBDt18BLOWjMUFJMSi/Qqg7NTYtabbvSNJGOJ7afbRuv9D/lngizHtP7QyLQ+9w==", + "license": "BSD-2-Clause", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://dotenvx.com" + } + }, + "node_modules/memory-pager": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/memory-pager/-/memory-pager-1.5.0.tgz", + "integrity": "sha512-ZS4Bp4r/Zoeq6+NLJpP+0Zzm0pR8whtGPf1XExKLJBAczGMnSi3It14OiNCStjQjM6NU1okjQGSxgEZN8eBYKg==", + "license": "MIT" + }, + "node_modules/mongodb": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/mongodb/-/mongodb-7.0.0.tgz", + "integrity": "sha512-vG/A5cQrvGGvZm2mTnCSz1LUcbOPl83hfB6bxULKQ8oFZauyox/2xbZOoGNl+64m8VBrETkdGCDBdOsCr3F3jg==", + "license": "Apache-2.0", + "dependencies": { + "@mongodb-js/saslprep": "^1.3.0", + "bson": "^7.0.0", + "mongodb-connection-string-url": "^7.0.0" + }, + "engines": { + "node": ">=20.19.0" + }, + "peerDependencies": { + "@aws-sdk/credential-providers": "^3.806.0", + "@mongodb-js/zstd": "^7.0.0", + "gcp-metadata": "^7.0.1", + "kerberos": "^7.0.0", + "mongodb-client-encryption": ">=7.0.0 <7.1.0", + "snappy": "^7.3.2", + "socks": "^2.8.6" + }, + "peerDependenciesMeta": { + "@aws-sdk/credential-providers": { + "optional": true + }, + "@mongodb-js/zstd": { + "optional": true + }, + "gcp-metadata": { + "optional": true + }, + "kerberos": { + "optional": true + }, + "mongodb-client-encryption": { + "optional": true + }, + "snappy": { + "optional": true + }, + "socks": { + "optional": true + } + } + }, + "node_modules/mongodb-connection-string-url": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/mongodb-connection-string-url/-/mongodb-connection-string-url-7.0.0.tgz", + "integrity": "sha512-irhhjRVLE20hbkRl4zpAYLnDMM+zIZnp0IDB9akAFFUZp/3XdOfwwddc7y6cNvF2WCEtfTYRwYbIfYa2kVY0og==", + "license": "Apache-2.0", + "dependencies": { + "@types/whatwg-url": "^13.0.0", + "whatwg-url": "^14.1.0" + }, + "engines": { + "node": ">=20.19.0" + } + }, + "node_modules/pg": { + "version": "8.16.3", + "resolved": "https://registry.npmjs.org/pg/-/pg-8.16.3.tgz", + "integrity": "sha512-enxc1h0jA/aq5oSDMvqyW3q89ra6XIIDZgCX9vkMrnz5DFTw/Ny3Li2lFQ+pt3L6MCgm/5o2o8HW9hiJji+xvw==", + "license": "MIT", + "dependencies": { + "pg-connection-string": "^2.9.1", + "pg-pool": "^3.10.1", + "pg-protocol": "^1.10.3", + "pg-types": "2.2.0", + "pgpass": "1.0.5" + }, + "engines": { + "node": ">= 16.0.0" + }, + "optionalDependencies": { + "pg-cloudflare": "^1.2.7" + }, + "peerDependencies": { + "pg-native": ">=3.0.1" + }, + "peerDependenciesMeta": { + "pg-native": { + "optional": true + } + } + }, + "node_modules/pg-cloudflare": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/pg-cloudflare/-/pg-cloudflare-1.2.7.tgz", + "integrity": "sha512-YgCtzMH0ptvZJslLM1ffsY4EuGaU0cx4XSdXLRFae8bPP4dS5xL1tNB3k2o/N64cHJpwU7dxKli/nZ2lUa5fLg==", + "license": "MIT", + "optional": true + }, + "node_modules/pg-connection-string": { + "version": "2.9.1", + "resolved": "https://registry.npmjs.org/pg-connection-string/-/pg-connection-string-2.9.1.tgz", + "integrity": "sha512-nkc6NpDcvPVpZXxrreI/FOtX3XemeLl8E0qFr6F2Lrm/I8WOnaWNhIPK2Z7OHpw7gh5XJThi6j6ppgNoaT1w4w==", + "license": "MIT" + }, + "node_modules/pg-int8": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/pg-int8/-/pg-int8-1.0.1.tgz", + "integrity": "sha512-WCtabS6t3c8SkpDBUlb1kjOs7l66xsGdKpIPZsg4wR+B3+u9UAum2odSsF9tnvxg80h4ZxLWMy4pRjOsFIqQpw==", + "license": "ISC", + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/pg-pool": { + "version": "3.10.1", + "resolved": "https://registry.npmjs.org/pg-pool/-/pg-pool-3.10.1.tgz", + "integrity": "sha512-Tu8jMlcX+9d8+QVzKIvM/uJtp07PKr82IUOYEphaWcoBhIYkoHpLXN3qO59nAI11ripznDsEzEv8nUxBVWajGg==", + "license": "MIT", + "peerDependencies": { + "pg": ">=8.0" + } + }, + "node_modules/pg-protocol": { + "version": "1.10.3", + "resolved": "https://registry.npmjs.org/pg-protocol/-/pg-protocol-1.10.3.tgz", + "integrity": "sha512-6DIBgBQaTKDJyxnXaLiLR8wBpQQcGWuAESkRBX/t6OwA8YsqP+iVSiond2EDy6Y/dsGk8rh/jtax3js5NeV7JQ==", + "license": "MIT" + }, + "node_modules/pg-types": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/pg-types/-/pg-types-2.2.0.tgz", + "integrity": "sha512-qTAAlrEsl8s4OiEQY69wDvcMIdQN6wdz5ojQiOy6YRMuynxenON0O5oCpJI6lshc6scgAY8qvJ2On/p+CXY0GA==", + "license": "MIT", + "dependencies": { + "pg-int8": "1.0.1", + "postgres-array": "~2.0.0", + "postgres-bytea": "~1.0.0", + "postgres-date": "~1.0.4", + "postgres-interval": "^1.1.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/pgpass": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/pgpass/-/pgpass-1.0.5.tgz", + "integrity": "sha512-FdW9r/jQZhSeohs1Z3sI1yxFQNFvMcnmfuj4WBMUTxOrAyLMaTcE1aAMBiTlbMNaXvBCQuVi0R7hd8udDSP7ug==", + "license": "MIT", + "dependencies": { + "split2": "^4.1.0" + } + }, + "node_modules/postgres-array": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/postgres-array/-/postgres-array-2.0.0.tgz", + "integrity": "sha512-VpZrUqU5A69eQyW2c5CA1jtLecCsN2U/bD6VilrFDWq5+5UIEVO7nazS3TEcHf1zuPYO/sqGvUvW62g86RXZuA==", + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/postgres-bytea": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/postgres-bytea/-/postgres-bytea-1.0.0.tgz", + "integrity": "sha512-xy3pmLuQqRBZBXDULy7KbaitYqLcmxigw14Q5sj8QBVLqEwXfeybIKVWiqAXTlcvdvb0+xkOtDbfQMOf4lST1w==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/postgres-date": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/postgres-date/-/postgres-date-1.0.7.tgz", + "integrity": "sha512-suDmjLVQg78nMK2UZ454hAG+OAW+HQPZ6n++TNDUX+L0+uUlLywnoxJKDou51Zm+zTCjrCl0Nq6J9C5hP9vK/Q==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/postgres-interval": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/postgres-interval/-/postgres-interval-1.2.0.tgz", + "integrity": "sha512-9ZhXKM/rw350N1ovuWHbGxnGh/SNJ4cnxHiM0rxE4VN41wsg8P8zWn9hv/buK00RP4WvlOyr/RBDiptyxVbkZQ==", + "license": "MIT", + "dependencies": { + "xtend": "^4.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/punycode": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", + "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/sparse-bitfield": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/sparse-bitfield/-/sparse-bitfield-3.0.3.tgz", + "integrity": "sha512-kvzhi7vqKTfkh0PZU+2D2PIllw2ymqJKujUcyPMd9Y75Nv4nPbGJZXNhxsgdQab2BmlDct1YnfQCguEvHr7VsQ==", + "license": "MIT", + "dependencies": { + "memory-pager": "^1.0.2" + } + }, + "node_modules/split2": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/split2/-/split2-4.2.0.tgz", + "integrity": "sha512-UcjcJOWknrNkF6PLX83qcHM6KHgVKNkV62Y8a5uYDVv9ydGQVwAHMKqHdJje1VTWpljG0WYpCDhrCdAOYH4TWg==", + "license": "ISC", + "engines": { + "node": ">= 10.x" + } + }, + "node_modules/tr46": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-5.1.1.tgz", + "integrity": "sha512-hdF5ZgjTqgAntKkklYw0R03MG2x/bSzTtkxmIRw/sTNV8YXsCJ1tfLAX23lhxhHJlEf3CRCOCGGWw3vI3GaSPw==", + "license": "MIT", + "dependencies": { + "punycode": "^2.3.1" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/webidl-conversions": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-7.0.0.tgz", + "integrity": "sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==", + "license": "BSD-2-Clause", + "engines": { + "node": ">=12" + } + }, + "node_modules/whatwg-url": { + "version": "14.2.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-14.2.0.tgz", + "integrity": "sha512-De72GdQZzNTUBBChsXueQUnPKDkg/5A5zp7pFDuQAj5UFoENpiACU0wlCvzpAGnTkj++ihpKwKyYewn/XNUbKw==", + "license": "MIT", + "dependencies": { + "tr46": "^5.1.0", + "webidl-conversions": "^7.0.0" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/xtend": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", + "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", + "license": "MIT", + "engines": { + "node": ">=0.4" + } + } + } +} diff --git a/package.json b/package.json new file mode 100644 index 000000000..4008348a2 --- /dev/null +++ b/package.json @@ -0,0 +1,25 @@ +{ + "name": "databases-cohort54", + "version": "1.0.0", + "description": "> If you are following the HackYourFuture curriculum we recommend you to start with module\r > 1: [CLI/GIT](https://github.com/HackYourFuture/CLI-Git). To get a complete overview of the HackYourFuture\r > curriculum first, click [here](https://github.com/HackYourFuture/curriculum).", + "main": "index.js", + "scripts": { + "test": "echo \"Error: no test specified\" && exit 1" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/hkarimx/databases-cohort54.git" + }, + "keywords": [], + "author": "", + "license": "ISC", + "bugs": { + "url": "https://github.com/hkarimx/databases-cohort54/issues" + }, + "homepage": "https://github.com/hkarimx/databases-cohort54#readme", + "dependencies": { + "dotenv": "^17.2.3", + "mongodb": "^7.0.0", + "pg": "^8.16.3" + } +}