{"id":14975527,"url":"https://github.com/remrkabledev/onlearn","last_synced_at":"2025-10-08T21:32:40.594Z","repository":{"id":43321546,"uuid":"314006734","full_name":"reMRKableDev/OnLearn","owner":"reMRKableDev","description":"A learning management system built with Node.js (In progress...)","archived":false,"fork":false,"pushed_at":"2024-10-25T19:42:57.000Z","size":2787,"stargazers_count":20,"open_issues_count":16,"forks_count":5,"subscribers_count":2,"default_branch":"main","last_synced_at":"2024-10-30T08:03:57.755Z","etag":null,"topics":["cloudinary","expressjs","google-api","mongodb","mongoosejs","nodejs","passportjs","poc"],"latest_commit_sha":null,"homepage":"","language":"JavaScript","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/reMRKableDev.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","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":"2020-11-18T17:22:54.000Z","updated_at":"2024-09-28T06:17:04.000Z","dependencies_parsed_at":"2022-09-22T17:31:52.073Z","dependency_job_id":"8485ebde-bd86-4a7b-b825-596188799314","html_url":"https://github.com/reMRKableDev/OnLearn","commit_stats":{"total_commits":609,"total_committers":4,"mean_commits":152.25,"dds":0.5681444991789819,"last_synced_commit":"4c41f76c3cff038c5d334361c1e497071b6e2986"},"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/reMRKableDev%2FOnLearn","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/reMRKableDev%2FOnLearn/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/reMRKableDev%2FOnLearn/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/reMRKableDev%2FOnLearn/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/reMRKableDev","download_url":"https://codeload.github.com/reMRKableDev/OnLearn/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":238508454,"owners_count":19484134,"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":["cloudinary","expressjs","google-api","mongodb","mongoosejs","nodejs","passportjs","poc"],"created_at":"2024-09-24T13:52:10.083Z","updated_at":"2025-10-08T21:32:35.553Z","avatar_url":"https://github.com/reMRKableDev.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# NON-FUNCTIONAL!!!!!! OnLearn (POC) 🚀🚀🚀\n\n![tests](https://github.com/reMRKableDev/OnLearn/workflows/tests/badge.svg) [![codecov](https://codecov.io/gh/reMRKableDev/OnLearn/branch/main/graph/badge.svg?token=8IAKVRS55T)](https://codecov.io/gh/reMRKableDev/OnLearn) [![CodeFactor](https://www.codefactor.io/repository/github/remrkabledev/onlearn/badge)](https://www.codefactor.io/repository/github/remrkabledev/onlearn) [![Renovate](https://img.shields.io/badge/renovate-enabled-brightgreen.svg)](https://renovatebot.com) [![Quality Gate Status](https://sonarcloud.io/api/project_badges/measure?project=reMRKableDev_OnLearn\u0026metric=alert_status)](https://sonarcloud.io/dashboard?id=reMRKableDev_OnLearn) [![Reliability Rating](https://sonarcloud.io/api/project_badges/measure?project=reMRKableDev_OnLearn\u0026metric=reliability_rating)](https://sonarcloud.io/dashboard?id=reMRKableDev_OnLearn) [![Maintainability Rating](https://sonarcloud.io/api/project_badges/measure?project=reMRKableDev_OnLearn\u0026metric=sqale_rating)](https://sonarcloud.io/dashboard?id=reMRKableDev_OnLearn) [![Security Rating](https://sonarcloud.io/api/project_badges/measure?project=reMRKableDev_OnLearn\u0026metric=security_rating)](https://sonarcloud.io/dashboard?id=reMRKableDev_OnLearn) [![Vulnerabilities](https://sonarcloud.io/api/project_badges/measure?project=reMRKableDev_OnLearn\u0026metric=vulnerabilities)](https://sonarcloud.io/dashboard?id=reMRKableDev_OnLearn) [![Technical Debt](https://sonarcloud.io/api/project_badges/measure?project=reMRKableDev_OnLearn\u0026metric=sqale_index)](https://sonarcloud.io/dashboard?id=reMRKableDev_OnLearn) [![Bugs](https://sonarcloud.io/api/project_badges/measure?project=reMRKableDev_OnLearn\u0026metric=bugs)](https://sonarcloud.io/dashboard?id=reMRKableDev_OnLearn) [![time tracker](https://wakatime.com/badge/github/reMRKableDev/OnLearn.svg)](https://wakatime.com/badge/github/reMRKableDev/OnLearn) \n\nA simple online Learning Management System (LMS) built with Node.js. \n\nThis project isn't production-ready. At best it is a Proof Of Concept (POC). IT IS NOT FUNCTIONAL!!!!\n\n🚨 **Important links to check out** \n\n1. You can find the project's kanban board 👉 [here](https://github.com/reMRKableDev/OnLearn/projects/1) 👈\n\n2. You can find the project's mockup 👉 [here](https://www.figma.com/file/7DxTkysjJFUCjcTs9AsbLp/OnLearn-Mockup?node-id=201%3A5189) 👈\n   \n3. You can find the project's database diagram 👉 [here](https://github.com/reMRKableDev/OnLearn/blob/main/assets/db-diagram.png) 👈\n\n\n## Getting Started\n\nThese instructions will get you a copy of the project up and running on your local machine for development and testing purposes.\n\n### Prerequisites\n\nWhat things you need to install the software and how to install them.\n\n```\nNPM / Yarn\nCode Editor (This app was built on VSCode)\nGit\nCloudinary Account\nOAuth 2.0 Clients (Google API)\n```\n\n**Cloudinary**\n\nCloudinary is an end-to-end image- and video-management solution for websites and mobile apps, covering everything from image and video uploads, storage, manipulations, optimizations to delivery.\n\nAll images and/or videos uploaded within this app are stored in a cloudinary account. You will need to create your account if you want to properly test this functionality out locally. \n\n*Setup:* \n\n1.  Create an account at [Cloudinary](https://cloudinary.com/).\n\n2.  Navigate to your Cloudinary dashboard to find the variables you will later need to add to the ```.env``` file (See How To Use section below)\n\n\n**Google API (OAuth 2.0)**\n\nGoogle APIs are application programming interfaces developed by Google which allow communication with Google Services and their integration to other services.\n\nThe authentication process of this application utilizes Passport's [Local](http://www.passportjs.org/packages/passport-local/) and [Google Strategy](http://www.passportjs.org/docs/google/). \n\nIn order for Google to identify which application's Passport interacts with their API, you will need to obtain clientID and clientSecret in [Google Developers Console](https://console.developers.google.com). You may refer to this [guide](https://developers.google.com/adwords/api/docs/guides/authentication#create_a_client_id_and_client_secret) for the steps.\n\n\n### Installing\n\nTo get this project on your local machine, you first need to clone it using the `git clone` command.\n\n```\ngit clone https://github.com/reMRKableDev/OnLearn\n```\n\nRunning this on your terminal will ensure you receive the latest version with all it's changes.\n\nOnce you've cloned it, install all dependencies using:\n\n```\nnpm install\n```\n\nThis should retrieve all the necessary dependencies named in the [package.json](https://github.com/reMRKableDev/OnLearn/blob/main/package.json) file.\n\n### How To Use:\n\nOnce dependencies are installed, be sure to include a ```.env``` file with the necessary environment variable:\n\n```\nLOCAL_MONGO_URI = \u003cmongodb uri goes here...\u003e\nSESSION_SECRET = \u003csession secret goes here...\u003e\nPORT = \u003cport number goes here...\u003e\n\nDUMMY_PASSWORD = \u003ccustom dummy pwd goes here...\u003e\nDUMMY_EDIT_PASSWORD_WEAK = \u003ccustom weak dummy pwd goes here...\u003e\nDUMMY_EDIT_PASSWORD_STRONG = \u003ccustom strong dummy pwd goes here...\u003e\n\nGOOGLE_CLIENT_ID = \u003cyour google client id goes here...\u003e\nGOOGLE_CLIENT_SECRET = \u003cyour google client secret goes here...\u003e\n\nCLOUDINARY_NAME = \u003cyour cloudinary name goes here...\u003e\nCLOUDINARY_KEY = \u003cyour cloudinary key goes here...\u003e\nCLOUDINARY_SECRET = \u003cyour cloudinary secret goes here...\u003e\n```\n\nWhen everything is in place, the application can be run locally using:\n\n```\nnpm run dev\n```\n\n## Running tests 🧪\n\nThe testing framework utilized is Jest. Tests can be run by using the command:\n\n```\nnpm test\n\nOR\n\nnpm run test\n```\n\nTo run tests and see the code coverage. RUn using the command:\n```\nnpm run coverage\n```\n\n## Contributing 👋\n\nIf you would like to contribute to this repository, follow the guidelines provided in the [CONTRIBUTING.md](https://github.com/reMRKableDev/OnLearn/blob/main/CONTRIBUTING.md) file.\n\n## Code Of Conduct 📋\n\nPlease note that there is a [CODE_OF_CONDUCT.md](https://github.com/reMRKableDev/OnLearn/blob/main/CODE_OF_CONDUCT.md), please follow it in all your interactions with the project.\n\n## Authors 💻\n\n- **Malcolm R. Kente** - _Initial work_ - [reMRKable Dev](https://remrkabledev.com/)\n\n## Acknowledgments 🗣️\n\nThe initial inspirations for this project are:\n\n - The [hypatia](https://github.com/gazpachu/hypatia) project by [Gazpachu(Joan Mira)](https://github.com/gazpachu)\n - The [node-lms](https://github.com/Luci-Lawless/node-lms) project by [Luci-Lawless](https://github.com/Luci-Lawless).\n - The [node-lms](https://github.com/edwinmah/node-lms) project by [EdwinMah](https://github.com/edwinmah).\n\n[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fremrkabledev%2Fonlearn","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fremrkabledev%2Fonlearn","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fremrkabledev%2Fonlearn/lists"}