{"id":24990396,"url":"https://github.com/msio808/quizbit","last_synced_at":"2025-03-29T12:42:43.069Z","repository":{"id":252293526,"uuid":"839832780","full_name":"msio808/quizbit","owner":"msio808","description":"My CS50x final project | CLI based quiz game written in C","archived":false,"fork":false,"pushed_at":"2024-08-20T15:53:07.000Z","size":9222,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-02-04T13:41:12.130Z","etag":null,"topics":["c","cs50","cs50x","openssl","quiz","quizgame","regex","sha-256","sqlite","sqlite3"],"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/msio808.png","metadata":{"files":{"readme":"docs/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":"2024-08-08T12:16:17.000Z","updated_at":"2024-08-20T15:53:10.000Z","dependencies_parsed_at":"2024-08-20T17:54:57.316Z","dependency_job_id":null,"html_url":"https://github.com/msio808/quizbit","commit_stats":null,"previous_names":["msio808/quizbit"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/msio808%2Fquizbit","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/msio808%2Fquizbit/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/msio808%2Fquizbit/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/msio808%2Fquizbit/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/msio808","download_url":"https://codeload.github.com/msio808/quizbit/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246187210,"owners_count":20737459,"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":["c","cs50","cs50x","openssl","quiz","quizgame","regex","sha-256","sqlite","sqlite3"],"created_at":"2025-02-04T13:36:16.499Z","updated_at":"2025-03-29T12:42:43.045Z","avatar_url":"https://github.com/msio808.png","language":"C","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003chr\u003e\n\u003cdiv align=\"center\"\u003e\n   \u003cimg style=\"text-align: center;\" src=\"https://socialify.git.ci/msio808/quizbit/image?description=1\u0026descriptionEditable=CLI%20based%20quiz%20game%20written%20in%20C\u0026font=Rokkitt\u0026forks=1\u0026issues=1\u0026language=1\u0026logo=https%3A%2F%2Fraw.githubusercontent.com%2Fmsio808%2Fquizbit%2Fmain%2Fdocs%2Fimg%2Fqmark.png\u0026name=1\u0026owner=1\u0026pattern=Signal\u0026pulls=1\u0026stargazers=1\u0026theme=Auto\" width=\"50%\" height=\"50%\" alt=\"project-cover\"/\u003e\n\n\u003ch1\u003eQUIZBIT - QUIZ GAME\u003c/h1\u003e\n\u003cp\u003e\u003cem\u003e\u003ccode\u003e► CLI based quiz game written in C\u003c/code\u003e\u003c/em\u003e\u003c/p\u003e\n\u003c!--\u003cp\u003e\n\t\u003cimg src=\"https://img.shields.io/github/license/msio808/quizbit.git?style=flat\u0026color=0080ff\" alt=\"license\"\u003e\n\t\u003cimg src=\"https://img.shields.io/github/last-commit/msio808/quizbit.git?style=flat\u0026logo=git\u0026logoColor=white\u0026color=0080ff\" alt=\"last-commit\"\u003e\n\t\u003cimg src=\"https://img.shields.io/github/languages/top/msio808/quizbit.git?style=flat\u0026color=0080ff\" alt=\"repo-top-language\"\u003e\n\t\u003cimg src=\"https://img.shields.io/github/languages/count/msio808/quizbit.git?style=flat\u0026color=0080ff\" alt=\"repo-language-count\"\u003e\n\u003c/p\u003e--\u003e\n\n\u003cp style=\"text-align: center\"\u003e\u003cem\u003eSoftwares/Technologies Used\u003c/em\u003e\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eCLION ┃ SQLite3 ┃ OpenSSL ┃ CMake ┃ Makefile ┃ valgrind \u003c/strong\u003e\u003c/p\u003e\n\u003c/div\u003e\n\n\u003chr\u003e\n\n\n\u003cdiv id=\"quick-links\"\u003e\n\u003cdetails\u003e\n\u003csummary style=\"font-size: large\"\u003e \u003cstrong\u003e 🔗 Table Of Contents \u003c/strong\u003e\u003c/summary\u003e\n\u003cblockquote\u003e\n\u003cul\u003e\n    \u003cli\u003e\u003ca href=\"#overview\"\u003e📍 Overview\u003c/a\u003e\u003c/li\u003e\n    \u003cli\u003e\u003ca href=\"#features\"\u003e📦 Features\u003c/a\u003e\u003c/li\u003e\n    \u003cli\u003e\u003ca href=\"#repo-structure\"\u003e📂 Repository Structure\u003c/a\u003e\u003c/li\u003e\n    \u003cli\u003e\u003ca href=\"#modules\"\u003e🧩 Modules\u003c/a\u003e\u003c/li\u003e\n    \u003cli\u003e\u003ca href=\"#get-started\"\u003e🚀 Getting Started\u003c/a\u003e\u003cul\u003e\n    \u003cli\u003e\u003ca href=\"#installation\"\u003e⚙️ Installation\u003c/a\u003e\u003c/li\u003e\n    \u003c/ul\u003e\n    \u003c/li\u003e\n    \u003cli\u003e\u003ca href=\"#usage\"\u003e🚀 Usage\u003c/a\u003e\u003c/li\u003e\n    \u003cli\u003e\u003ca href=\"#contribute\"\u003e🤝 Contributing\u003c/a\u003e\u003c/li\u003e\n    \u003cli\u003e\u003ca href=\"#license\"\u003e📄 License\u003c/a\u003e\u003c/li\u003e\n    \u003cli\u003e\u003ca href=\"#acknowledgments\"\u003e👏 Acknowledgments\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\n\u003chr\u003e\n\n\u003ch2 id=\"overview\"\u003e 📍 Overview \u003c/h2\u003e\n    \u003cul\u003e\n      \u003cp style=\"text-align: justify\"\u003e\n        This project is a CLI Quiz Game written in C as my final project for the CS50x course.\n        It is designed to test user's knowledge across three categories: Science, Sports, and General Knowledge.\n        Users can log in to an existing account or sign up for a new one, and their progress is saved in an SQLite database.\n        This project demonstrates proficiency in C programming, database management, and basic security practices.\n    \u003c/p\u003e\n   \u003c/ul\u003e\n\u003c/div\u003e\n\n\u003chr\u003e\n\n\u003cdiv\u003e\n\u003ch2 id=\"features\"\u003e 📦 Features \u003c/h2\u003e\n\u003cul\u003e\n\u003cdetails\u003e\n    \u003csummary style=\"font-size: 15px\"\u003e User Authentication \u003c/summary\u003e\n    \u003cul\u003e\n    Users can log in to their account or create a new one through the sign-up process\n    \u003c/ul\u003e\n\u003c/details\u003e\n\n\u003cdetails\u003e\n    \u003csummary style=\"font-size: 15px\"\u003e Quiz Categories \u003c/summary\u003e\n    \u003cul\u003e\n    The game offers three categories — Science, Sports, and General Knowledge. Users can choose any category to start the quiz.\n    \u003c/ul\u003e\n\u003c/details\u003e\n\n\u003cdetails\u003e\n    \u003csummary style=\"font-size: 15px\"\u003e Randomized Questions \u003c/summary\u003e\n    \u003cul\u003e\n    Questions are randomly selected from the chosen category to ensure a unique experience each time.\n    \u003c/ul\u003e\n\u003c/details\u003e\n\n\u003cdetails\u003e\n    \u003csummary style=\"font-size: 15px\"\u003e Score Tracking \u003c/summary\u003e\n    \u003cul\u003e\n        The game records user scores and allows users to view their scores in their profile.\n    \u003c/ul\u003e\n\u003c/details\u003e\n\n\u003cdetails\u003e\n    \u003csummary style=\"font-size: 15px\"\u003e Profile Management\u003c/summary\u003e\n    \u003cul\u003eUsers can view their profile, edit their information, delete their account, or reset their profile data.\u003c/ul\u003e\n\u003c/details\u003e\n\u003c/ul\u003e\n\n\u003chr\u003e\n\n\u003cdetails\u003e\n\u003csummary id=\"repo-structure\" style=\"font-size: 20px\"\u003e 📂 Repository Structure \u003c/summary\u003e\n\n```\n.\n├── config\n│   ├── build.sh\n│   ├── CMakeLists.txt\n│   ├── install_requirements.sh\n│   └── requirements.txt\n├── docs\n│   ├── img\n│   │   └── qmark.png\n│   └── README.md\n├── include\n│   ├── console.h\n│   ├── db.h\n│   ├── emojis.h\n│   ├── gamecore.h\n│   ├── gamemath.h\n│   ├── global.h\n│   └── utilities.h\n├── LICENSE\n└── src\n    ├── console\n    │   └── terminal.c\n    ├── core\n    │   ├── account.c\n    │   ├── gamecore.c\n    │   ├── gamemath.c\n    │   ├── gameplay.c\n    │   └── userprofile.c\n    ├── db\n    │   ├── database.c\n    │   └── questions.c\n    ├── main.c\n    └── utils\n        ├── authutil.c\n        ├── gameutil.c\n        └── utilities.c\n\n```\n\u003c/details\u003e\n\n\u003c/div\u003e\n\n\u003chr\u003e\n\n\n\u003cdiv\u003e\n\n\u003ch2 id=\"get-started\"\u003e 🚀 Getting Started \u003c/h2\u003e\n\u003ch3\u003e Requirements \u003c/h3\u003e\n\u003cem\u003e\n\u003ccode\u003e ► gcc make cmake sqlite3 valgrind libssl-dev libpcre3-dev \u003c/code\u003e\n\u003c/em\u003e\n\n\n\u003ch2 id=\"installation\"\u003e ⚙️ Installation \u003c/h2\u003e\n\n### Clone the quizbit repository:\n\n```sh\ngit clone https://github.com/msio808/quizbit.git\n```\n\n### Change to the project directory:\n\n```sh\ncd quizbit/config/\n```\n\n### Install the dependencies:\n\n```sh\n./install_requirements.sh\n```\n\n### 🤖 Running the project\n\n```sh\n./build.sh --run\n```\n\n### 🧪 Debugging\n```sh\n./build.sh --memcheck\n```\n### 🗑 Clean generated build files\n```sh\n./build.sh --clean OR ./build.sh --clean-all\n```\n\n\u003c/div\u003e\n\n\u003chr\u003e\n\n\u003ch2 id=\"usage\"\u003e Usage \u003c/h2\u003e\n\n- After building and running the project, Choose \"Sign Up\" and follow the prompts to create an account.\n- Login to your account.\n- Use the arrow keys to navigate through the game\n- Click on the ```gameplay help``` menu to read more about the game.\n- Select a quiz category.\n- Answer the quiz questions and track your score.\n\n## 🚀 Screenshot\n\n![Watch the demo](https://raw.githubusercontent.com/msio808/quizbit/main/docs/img/screenshot.png)\n\n## 🛠️ Improvements\n- Some of the functions in the ```src/core/gamemath.c``` needs improvements\u003c/li\u003e\n\n- The ```SIGWINCH``` functions located in the ```src/console/terminal.c``` also needs improvements.\n\n\n\u003cdiv\u003e\n\n\u003ch2 id=\"contribute\"\u003e 🤝 Contributing \u003c/h2\u003e\n\n\u003cp\u003e Contributions are welcome! Here are several ways you can contribute:\n\n\u003cdetails\u003e\n    \u003csummary\u003eContributing Guidelines\u003c/summary\u003e\n\n1. Fork the Repository to your GitHub account.\n2. Clone the forked repository to your PC.\n   ```sh\n   git clone https://github.com/msio808/quizbit.git\n   ```\n3. Create a new branch \u0026 give it a descriptive name.\n   ```sh\n   git checkout -b new-feature-x\n   ```\n4. Make and test your changes locally.\n5. Commit with a clear message describing your updates.\n   ```sh\n   git commit -m 'Implemented new feature x.'\n   ```\n6. Push the changes to your forked repository.\n   ```sh\n   git push origin new-feature-x\n   ```\n7. Submit a pull request.\n\n\u003c/details\u003e\n\u003ch3\u003e Check Out this \u003ca href=\"https://daily.dev/blog/how-to-contribute-to-open-source-github-repositories\"\u003e🔗 Documentation\u003c/a\u003e for more.\u003c/h3\u003e\n\u003c/div\u003e\n\n\u003chr\u003e\n\n\u003cfooter\u003e\n\n\u003ch2 id=\"license\"\u003e 📄 License \u003c/h2\u003e\n   \n\u003cp\u003e This project is distributed under the \u003ca href=\"../LICENSE\"\u003e GPL-3.0 LICENSE \u003c/a\u003e\u003c/p\u003e\n   \n\u003ch2 id=\"acknowledgments\"\u003e 👏 Acknowledgments \u003c/h2\u003e\n\n- 🔗 [_`COMPART`_](https://www.compart.com/en/unicode/)\n     \n- 🔗 [_`OpenSSL`_](https://www.openssl.org/docs/manmaster/man3/EVP_MD_CTX_new.html/)\n      \n- 🔗 [_`Pull Request`_](https://daily.dev/blog/how-to-contribute-to-open-source-github-repositories)\n      \n- 🔗 [_`Doxygen Uses`_](https://fnch.users.sourceforge.net/doxygen_c.html)\n      \n- 🔗 [_`getch() for Unix`_](https://ascheng.medium.com/linux-getch-for-unix-c2c829721a30/)\n      \n- 🔗 [_`termios(3) - Linux man page`_](https://linux.die.net/man/3/termios)\n      \n- 🔗 [_`nanosleep(2) — Linux manual page`_](https://man7.org/linux/man-pages/man2/nanosleep.2.html)\n- 🔗 [_`ANSI Color Codes`_](https://talyian.github.io/ansicolors/)\n\n\u003ca href=\"#quick-links\"\u003e quick links \u003c/a\u003e\n\n\u003c/footer\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmsio808%2Fquizbit","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmsio808%2Fquizbit","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmsio808%2Fquizbit/lists"}