Home

All Contributors Forks Stargazers Issues CC BY 4.0

Logo

OSCSA

Open Innovation Lab

Massive Open Online Courses (MOOCs) for Open Science in Arabic

Introduction

Open Science Community Saudi Arabia (OSCSA) was establised in line with Saudi Arabia's Vision 2030, which focuses on installing values, enhancing knowledge and improving equal access to education. It aims to provide a place where new comers and experienced peers interact, inspire each other to embed open science practices and values in their workflows and provide feedback on policies, infrastructures and support services. Our community is part of the International Network of Open Science & Scholarship Communities (INOSC).

Open Innovation lab is a Massive Open Online Courses (MOOCs) platform, where free online courses and materials are available to enrol. We have developed our own materials and will also include materials from Open Life Sciences and Turing Way. The platform is similar to Udemy, where a user can view videos and written materials as lessons.

Getting Started

This documentation is built using the JSDoc tool, an API documentation generator for JavaScript and DocStrap theme was used for the style. For more information about using JSDoc, see the documentation guide or the Get Started guide

Prerequisites

To get started with contributing to Open Innovation Lab, you will need;

  • A Github account
  • A basic understanding of Markdown is recommended but not necessary. Here is a guide

Installation

The project repository is distributed into two main directories CLIENT and API. The setup process for the Client and API are quite similar.

Follow these steps:

  1. Create a fork of the Open Innovation Lab github repository to your github account.
  2. Clone the forked repository to your local machine. To do this run:
    git  clone https://github.com/<your-github-username>/MOOCs
    
  3. Now you can make your contributions, commit them, push and raise a Pull request for the changes. NOTE: Before making any contributions, make sure to go through the Contribution guidelines, it covers project specific rules for creating issues, and raising pull requests or any other form of contribution.

To setup the Client app locally follow these steps;

Frontend setup

  1. Open your terminal inside the project's root directory
  2. Make sure to have node installed by running the following command
    node -v 
    
    This should display your current node version if it exists. If you don't have NodeJs already installed follow the instructions here
  3. Install yarn if you don't have it. Follow the installation guide here
  4. From the projects root directory, navigate to the Frontend folder
    cd Frontend
    
  5. Install necessary dependencies, run
    yarn install
    
  6. To start the server, run
    yarn dev
    
    You're all set, open http://localhost:5173 to view the hosted proj

Backend setup

  1. Open your terminal inside the project's root directory
  2. Make sure to have node installed, you can check by running
    node -v
    
    This should display your current node version if it's already installed. If you don't have NodeJs already installed follow the instructions here
  3. Install npm, if you don't have npm installed follow the installation guide here
  4. Navigate to the backend_API folder
    cd backend_API  
    
  5. Install necessary dependencies, run
    npm install
    
  6. There are different environments, each environment has an independent configuration file withing the /backend_API/src/ directory .env will be used when you use the production environment .env.dev will be used when you use the dev environment .env.test will be used when you use the test environment
  7. To start the development server, run
    npm run dev
    

You're all set, all http requests can be sent to http://localhost:5000, except you specify the PORT variable in the .env.dev file You can refer to the detailed guide in the Environment Setup Guide

Usage

The frontend app uses Yarn as its package manager and React as its frontend framework. The backend API uses npm as its package manager, it also uses Express as its web framework and MongoDB as its database.

NOTE: The frontend app is hosted on Netlify and the backend API is hosted on Heroku and MongoDB Atlas

Starting the frontend app

  1. Within the /Frontend directory, run
    yarn install
    
  2. To start the development server, run
     yarn dev
    
  3. To build the app for production, run
     yarn build
    
  4. To start the production server, run
    yarn start
    

.

Starting the backend API

  1. Within the /backend_API directory, you'll have to install all the necessary dependencies, run

    npm install
    
  2. To start the development server, run

     npm run dev
    

NOTE: The .env.dev file is used when you start the development server, you can change the environment variables in this file to suit your needs. The main environment variables required for starting up the API development server are:

  • PORT: The port number the server will listen to
  • MONGO_URI: The URI of the MongoDB database Other environment variables are optional, you can refer to the Environment Setup Guide for more information.

License

This work is licensed under a Creative Commons Attribution 4.0 International License.

CC BY 4.0

Contributors ✨

Thanks goes to these wonderful people (emoji key):

Orofin Adedamola A.
Orofin Adedamola A.

🚇 🎨
Richie
Richie

🚇 🤔 👀
Goodnews Sandy
Goodnews Sandy

👀 🚇 🧑‍🏫
Wahab Mufidat
Wahab Mufidat

🎨
Kelechi Okoronkwo
Kelechi Okoronkwo

🚇
Obiora Ebuka
Obiora Ebuka

🚇
Okereke Chinweotito
Okereke Chinweotito

⚠️ 🚇
Amin Musah Ahmed
Amin Musah Ahmed

🐛
Juliana Sau
Juliana Sau

🚇 🤔
JewelCodes
JewelCodes

🚇

This project follows the all-contributors specification. Contributions of any kind welcome!