{"id":15064793,"url":"https://github.com/ericafenyo/memopus","last_synced_at":"2026-01-29T10:44:44.459Z","repository":{"id":255768921,"uuid":"853572137","full_name":"ericafenyo/memopus","owner":"ericafenyo","description":"Memopus is a web application that helps users memorize information by creating and managing flashcards.","archived":false,"fork":false,"pushed_at":"2024-09-16T12:18:50.000Z","size":3568,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-01-22T10:14:47.829Z","etag":null,"topics":["angular","json-server","node","tailwind"],"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/ericafenyo.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":"2024-09-07T00:01:59.000Z","updated_at":"2024-09-16T12:20:09.000Z","dependencies_parsed_at":"2024-10-13T00:21:47.585Z","dependency_job_id":"f9a4d986-e0d7-4c26-b244-ab935ca14fd7","html_url":"https://github.com/ericafenyo/memopus","commit_stats":null,"previous_names":["ericafenyo/memopus"],"tags_count":3,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ericafenyo%2Fmemopus","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ericafenyo%2Fmemopus/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ericafenyo%2Fmemopus/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ericafenyo%2Fmemopus/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ericafenyo","download_url":"https://codeload.github.com/ericafenyo/memopus/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243790999,"owners_count":20348385,"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":["angular","json-server","node","tailwind"],"created_at":"2024-09-25T00:26:12.088Z","updated_at":"2026-01-29T10:44:39.412Z","avatar_url":"https://github.com/ericafenyo.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Memopus\n\nMemopus is a web application that helps users memorize information by creating and managing flashcards.\n\n![](./assets/Screenshot%202024-09-12%20at%2000.20.43.png)\n\n## Features:\n\n1. **User Authentication:**  \n   Users can log in with their username and password to access the app's features, ensuring secure management of their\n   cards.\n\n2. **Card Management:**  \n   Users can create, view, edit, and delete cards. Each card consists of a question, an answer and a description,\n   providing a flexible way to memorize information.\n\n3. **Columns-based Organization:**  \n   Cards are categorized by columns, allowing users to easily move cards between different columns with a simple click,\n   helping them keep track of progress or status.\n\n4. **Filter by Tag:**  \n   Users can filter cards by selecting a tag, which displays only the relevant cards associated with that tag or\n   category.\n\n5. **Sneak peek of the Answer:**  \n   When viewing a card, the user can click on the question to reveal the answer, enabling a quick review of the content.\n\n6. **Propose an Answer:**  \n   Users can propose answers to card questions. The app compares the proposed answer with the stored answer, providing\n   instant feedback based on the comparison.\n\n## Installation\n\n### Prerequisite\n\nMake sure you have the following installed:\n\n- Node.js (v18 or higher)\n- Angular CLI (The version used in this project is 18.2)\n- npm\n\nDownload and navigate to the project directory in your terminal:\n\n```sh\ncd memopus\n```\n\nInstall dependencies:\n\n```sh\nnpm install\n```\n\n## 2. Start the JSON Server\n\nTo start the json-server (in watch mode):\n\n```sh\nnpm run start:server\n```\n\n## 3. Start the Angular Application\n\n```sh\nnpm start\n```\n\nNavigate to `http://localhost:4200/`. The application will automatically reload if you change any of the source files.\n\n## Technical documentation\n\n### Profile structure\n\n```\n├── assets\n├── public\n└── src\n    ├── app\n    │   ├── components\n    │   │   └── ui\n    │   ├── core\n    │   │   ├── guards\n    │   │   ├── services\n    │   │   └── enums\n    │   ├── models\n    │   ├── pages\n    └── environments\n```\n\n## UI and Theming\n\nComponents are custom-made and styled using Tailwind utility classes.\n\n## App state management\n\nAs someone who comes from a React background, I am more familiar with Redux for state management. So, I duplicated it\nusing ReactiveX BehaviorSubject subject and created a `Store`.\nBehaviorSubject is a type of Subject,that stores the latest value emitted to its consumers, and whenever a new Observer\nsubscribes, it will immediately receive the “current” value from the BehaviorSubject. so it a way it search as a cache.\n\nThis `Store` serve as a single source of truth for the application state, and it is injected into the ui components.\nThe values exposed by the `Store` are Observables, which means the components to subscribe to changes will be notified\nwhenever the state changes.\n\nui-components -\u003e Store -\u003e Service -\u003e JSON Server (API)\n\n## Further help\n\nTo get more help on the Angular CLI use `ng help` or go check out\nthe [Angular CLI Overview and Command Reference](https://angular.dev/tools/cli) page.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fericafenyo%2Fmemopus","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fericafenyo%2Fmemopus","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fericafenyo%2Fmemopus/lists"}