{"id":50612337,"url":"https://github.com/glourencoffee/learner","last_synced_at":"2026-06-06T05:01:33.713Z","repository":{"id":189579891,"uuid":"679431146","full_name":"glourencoffee/Learner","owner":"glourencoffee","description":"A web application for studying.","archived":false,"fork":false,"pushed_at":"2023-10-12T13:17:25.000Z","size":256,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2023-10-13T11:28:23.261Z","etag":null,"topics":["question-answering","studying"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/glourencoffee.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}},"created_at":"2023-08-16T20:38:19.000Z","updated_at":"2023-09-16T18:40:33.000Z","dependencies_parsed_at":"2023-10-13T00:34:39.395Z","dependency_job_id":null,"html_url":"https://github.com/glourencoffee/Learner","commit_stats":null,"previous_names":["glourencoffee/learner"],"tags_count":3,"template":null,"template_full_name":null,"purl":"pkg:github/glourencoffee/Learner","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/glourencoffee%2FLearner","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/glourencoffee%2FLearner/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/glourencoffee%2FLearner/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/glourencoffee%2FLearner/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/glourencoffee","download_url":"https://codeload.github.com/glourencoffee/Learner/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/glourencoffee%2FLearner/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33969883,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-06T02:00:07.033Z","response_time":107,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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":["question-answering","studying"],"created_at":"2026-06-06T05:01:30.691Z","updated_at":"2026-06-06T05:01:33.704Z","avatar_url":"https://github.com/glourencoffee.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# About\n\n\u003e Without training, they lacked knowledge. Without knowledge, they lacked confidence. Without confidence, they lacked victory. \u003cbr\u003e\n\u003e \\- Unknown\n\n*Learner* is a web application that allows one to create, manage, and answer questions of various areas of knowledge. Its purpose is to assist one in their study goals, be it general learning or preparing for an exam. I decided to develop this application after finding out that creating and answering my own questions is personally helpful for learning. Using flashcards could only go so far, hence this application.\n\n# Design\n\nFirst, some definitions:\n\n- A *user* is a person who uses Learner.\n- A *question* is something that tests a user's knowledge.\n- An *answer* is a single attempt of a user at testing their knowledge.\n- *Knowledge classification* organizes questions. Without it, there would only be a bunch, possibly thousands, of questions, scattered through the application's database without discretion. There are two concepts in the knowledge classification system used by Learner:\n  - A *knowledge area* groups other knowledge areas or topics.\n  - A *topic* is an element of knowledge.\n\n\nBelow is an example of how the concepts of knowledge classification used by Learner may allow organizing questions. The format below has knowledge areas (bolded) and topics (not bolded):\n\n- **Computer Science**\n  - **Computer Programming**\n    - **Algorithms and Data Structures**\n      - **Sorting Algoritms**\n        - Bubble Sort\n        - Heap Sort\n        - Merge Sort\n    - **Paradigms**\n      - **Object Oriented Programming**\n        - Inheritance\n        - Polymorphism\n    - **Programming Languages**\n      - **Python**\n        - Logical operations\n        - Aritmethic operations\n        - Flow-control structures\n        - Built-in functions\n        - Lists\n      - **C++**\n        - Concepts\n        - Pointers\n        - Template Meta-Programming\n        - Standard Library: vector\n        - Standard Library: string\n  - **Computer Network**\n    - **OSI**\n      - **Physical Layer (Layer 1)**\n        - **Guided Transmission Media**\n          - Twisted Pair Cable\n          - Coaxial Cable\n      - **Data Link Layer (Layer 2)**\n      - **Network Layer (Layer 3)**\n\nThe structure above is a *suggestion* of how knowledge could be classified. It is up to the user to define a structure, since Learner does not come with a built-in structure. (Yes, I know, this can be challenging.) Once the knowledge classification structure is defined, questions can be created.\n\nA question is associated with at least one topic, and may be associated with many topics. This allow composing multi-topic questions. For example, a question that compares the syntax of C++ (knowledge area) and Python (knowledge area) could be associated with topics from both of these areas.\n\nNote that the purpose of knowledge areas is mainly to organize content, so questions cannot be associated with them directly. However, a question which is associated with a topic X can be thought of as being indirectly associated with the knowledge areas which enclose X. For example, a question associated with the topic \"Computer Science / Computer Programming / Programming Languages / C++ / Pointers\" can be thought of as being indirectly associated with all the enclosing areas, that is:\n\n- Computer Science\n- Computer Science / Computer Programming\n- Computer Science / Computer Programming / Programming Languages\n- Computer Science / Computer Programming / Programming Languages / C++\n\nThis is useful for filtering questions and providing statistics about the user performance.\n\n# Repository Structure\n\nThis repository is divided into two sub-directories, `webpages` and `webservices`, which are responsible for the front-end and the back-end of the application, respectively. Each sub-directory contains their own instructions for building and running the applications.","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fglourencoffee%2Flearner","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fglourencoffee%2Flearner","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fglourencoffee%2Flearner/lists"}