Giter Club home page Giter Club logo

onlearn's Introduction

OnLearn (POC) ๐Ÿš€๐Ÿš€๐Ÿš€

tests codecov CodeFactor Renovate Quality Gate Status Reliability Rating Maintainability Rating Security Rating Vulnerabilities Technical Debt Bugs time tracker

A simple online Learning Management System (LMS) built with Node.js.

This project isn't production-ready. At best it is a Proof Of Concept (POC).

๐Ÿšจ Important links to check out

  1. You can find the project's kanban board ๐Ÿ‘‰ here ๐Ÿ‘ˆ

  2. You can find the project's mockup ๐Ÿ‘‰ here ๐Ÿ‘ˆ

  3. You can find the project's database diagram ๐Ÿ‘‰ here ๐Ÿ‘ˆ

Getting Started

These instructions will get you a copy of the project up and running on your local machine for development and testing purposes.

Prerequisites

What things you need to install the software and how to install them.

NPM / Yarn
Code Editor (This app was built on VSCode)
Git
Cloudinary Account
OAuth 2.0 Clients (Google API)

Cloudinary

Cloudinary 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.

All 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.

Setup:

  1. Create an account at Cloudinary.

  2. 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)

Google API (OAuth 2.0)

Google APIs are application programming interfaces developed by Google which allow communication with Google Services and their integration to other services.

The authentication process of this application utilizes Passport's Local and Google Strategy.

In 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. You may refer to this guide for the steps.

Installing

To get this project on your local machine, you first need to clone it using the git clone command.

git clone https://github.com/reMRKableDev/OnLearn

Running this on your terminal will ensure you receive the latest version with all it's changes.

Once you've cloned it, install all dependencies using:

npm install

This should retrieve all the necessary dependencies named in the package.json file.

How To Use:

Once dependencies are installed, be sure to include a .env file with the necessary environment variable:

LOCAL_MONGO_URI = <mongodb uri goes here...>
SESSION_SECRET = <session secret goes here...>
PORT = <port number goes here...>

DUMMY_PASSWORD = <custom dummy pwd goes here...>
DUMMY_EDIT_PASSWORD_WEAK = <custom weak dummy pwd goes here...>
DUMMY_EDIT_PASSWORD_STRONG = <custom strong dummy pwd goes here...>

GOOGLE_CLIENT_ID = <your google client id goes here...>
GOOGLE_CLIENT_SECRET = <your google client secret goes here...>

CLOUDINARY_NAME = <your cloudinary name goes here...>
CLOUDINARY_KEY = <your cloudinary key goes here...>
CLOUDINARY_SECRET = <your cloudinary secret goes here...>

When everything is in place, the application can be run locally using:

npm run dev

Running tests ๐Ÿงช

The testing framework utilized is Jest. Tests can be run by using the command:

npm test

OR

npm run test

To run tests and see the code coverage. RUn using the command:

npm run coverage

Contributing ๐Ÿ‘‹

If you would like to contribute to this repository, follow the guidelines provided in the CONTRIBUTING.md file.

Code Of Conduct ๐Ÿ“‹

Please note that there is a CODE_OF_CONDUCT.md, please follow it in all your interactions with the project.

Authors ๐Ÿ’ป

Acknowledgments ๐Ÿ—ฃ๏ธ

The initial inspirations for this project are:

License: MIT

onlearn's People

Contributors

dependabot[bot] avatar remrkabledev avatar renovate-bot avatar renovate[bot] avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

onlearn's Issues

Dependency Dashboard

This issue lists Renovate updates and detected dependencies. Read the Dependency Dashboard docs to learn more.

Other Branches

These updates are pending. To force PRs open, click the checkbox below.

  • Update dependency eslint to v9.9.0
  • Update dependency eslint-plugin-jest to v28.8.0
  • Update dependency express-validator to v7.2.0
  • Update dependency mongoose to v8.5.3
  • Update dependency prettier to v3.3.3
  • Update dependency mongodb-memory-server to v10

Detected dependencies

github-actions
.github/workflows/tests-coverage.yml
  • actions/checkout v4
  • actions/setup-node v4
  • codecov/codecov-action v4.5.0
npm
package.json
  • bcrypt 5.1.1
  • cloudinary 2.4.0
  • connect-flash 0.1.1
  • connect-mongo 5.1.0
  • cookie-parser 1.4.6
  • debug 4.3.6
  • dotenv 16.4.5
  • express 4.19.2
  • express-session 1.18.0
  • express-validator 7.2.0
  • hbs 4.2.0
  • http-errors 2.0.0
  • mongodb-memory-server 10.0.0
  • mongoose 8.5.3
  • morgan 1.10.0
  • multer 1.4.4
  • multer-storage-cloudinary 4.0.0
  • passport 0.7.0
  • passport-google-oauth 2.0.0
  • passport-local 1.0.0
  • serve-favicon 2.5.0
  • @shelf/jest-mongodb 4.3.2
  • eslint 9.9.0
  • eslint-config-airbnb-base 15.0.0
  • eslint-config-prettier 9.1.0
  • eslint-plugin-import 2.29.1
  • eslint-plugin-jest 28.8.0
  • eslint-plugin-prettier 5.2.1
  • jest 29.7.0
  • mongodb 6.8.0
  • prettier 3.3.3
  • supertest 7.0.0

  • Check this box to trigger a request for Renovate to run again on this repository

Action Required: Fix Renovate Configuration

There is an error with this repository's Renovate configuration that needs to be fixed. As a precaution, Renovate will stop PRs until it is resolved.

Error type: undefined. Note: this is a nested preset so please contact the preset author if you are unable to fix it yourself.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.