{"id":18244602,"url":"https://github.com/gogoasa-c/dbms","last_synced_at":"2025-07-14T00:07:03.850Z","repository":{"id":149769421,"uuid":"563014500","full_name":"gogoasa-c/dbms","owner":"gogoasa-c","description":"Database Management System running in the CLI, designed using object-oriented programming principles for the object-oriented programming course laboratory, implemented using C++17.","archived":false,"fork":false,"pushed_at":"2023-04-01T20:26:53.000Z","size":342,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-04-08T18:52:19.004Z","etag":null,"topics":["cli","cpp","oop","singleton"],"latest_commit_sha":null,"homepage":"","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/gogoasa-c.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2022-11-07T18:21:56.000Z","updated_at":"2023-04-01T21:05:47.000Z","dependencies_parsed_at":null,"dependency_job_id":"2016dd44-6ae4-4f77-ae6b-195852d9c2b6","html_url":"https://github.com/gogoasa-c/dbms","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/gogoasa-c/dbms","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gogoasa-c%2Fdbms","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gogoasa-c%2Fdbms/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gogoasa-c%2Fdbms/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gogoasa-c%2Fdbms/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/gogoasa-c","download_url":"https://codeload.github.com/gogoasa-c/dbms/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gogoasa-c%2Fdbms/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":265224156,"owners_count":23730342,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["cli","cpp","oop","singleton"],"created_at":"2024-11-05T09:17:08.037Z","updated_at":"2025-07-14T00:07:03.779Z","avatar_url":"https://github.com/gogoasa-c.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"\n# Database Management System\n\nDatabase Management System running in the CLI, designed using object-oriented programming principles for the object-oriented programming course laboratory, implemented using C++17.\n\n\n\n\n\n\n\n\n## Table of Contents\n\n* [Phase 1](#Phase-1)\n* [Phase 2](#Phase-2)\n* [Phase 3](#Phase-3)\n* [Screenshots](#Screenshots)\n## Phase 1\nThe first phase consisted of thinking up a class structure for our program, implementing command parser function set, which checks if the command is correct, checks for conflicts, and interprets it, and command functionality for a variety of commands:\n* CREATE TABLE tableName ((nameColumn1, type, size, defaultValue),  ...);\n* DROP TABLE tableName;\n* DISPLAY TABLE tableName;\n* INSERT INTO tableName VALUES ((valueColumn1, valueColumn2, valueColumn3, ...), ...);\n* DELETE FROM tableName WHERE columnName = value;\n* SELECT (column1, column2, ...)/ALL FROM tableName [WHERE columnName = value];\n* UPDATE tableName SET columnName = value where otherColumnName = otherValue;\n\nThe class structure consists of:\n* Entry - contains a line of a specific table\n* Header - contains the information concerning a table's columns\n* Table - contains header and std::vector of entries\n* Database - collection class for tables, implemented using singleton design pattern\n## Phase 2\n\nThe second phase consisted of storing the database's tables and data in text and binary files, as well as functionality for running commands directly from .txt files on execution and importing tables from .csv files using the IMPORT tableName fileName.csv command.\n\nImplemented interface-like abstract classes for reading and writing to files featuring pure virtual methods, now inherited by the Entry, Header, Table, and Database classes.\n\nAutomated generation of .txt file outputs for all of the SELECT commands used. They get deleted after rerunning the application.\n\n\n\n## Phase 3\n\nAdded further uses of standard template library (STL) data structures, such as Maps and Sets, slight refactoring, and menu for ease of use actived through MENU command.\n## Screenshots\n\n![Screenshot 1](https://user-images.githubusercontent.com/108761872/228919121-eb59ff82-d308-482e-ba63-2c2b2db56667.png)\n![Screenshot 2](https://user-images.githubusercontent.com/108761872/228919221-b098a7c9-138b-453c-92df-f005a1e4b295.png)\n![Screenshot 3](https://user-images.githubusercontent.com/108761872/228919280-2954a0cc-ea72-4680-abad-6ef6d1010821.png)\n\n## Authors\n\n- [@gogoasa-c](https://www.github.com/gogoasa-c)\n- [@Brescar](https://www.github.com/Brescar)\n- [@ChowderChan](https://www.github.com/ChowderChan)\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgogoasa-c%2Fdbms","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgogoasa-c%2Fdbms","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgogoasa-c%2Fdbms/lists"}