OSCSA
Open Innovation Lab
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:
- Create a fork of the Open Innovation Lab github repository to your github account.
- Clone the forked repository to your local machine.
To do this run:
git clone https://github.com/<your-github-username>/MOOCs
- 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
- Open your terminal inside the project's root directory
- Make sure to have node installed by running the following command
This should display your current node version if it exists. If you don't have NodeJs already installed follow the instructions herenode -v
- Install yarn if you don't have it. Follow the installation guide here
- From the projects root directory, navigate to the
Frontend
foldercd Frontend
- Install necessary dependencies, run
yarn install
- To start the server, run
You're all set, open http://localhost:5173 to view the hosted projyarn dev
Backend setup
- Open your terminal inside the project's root directory
- Make sure to have node installed, you can check by running
This should display your current node version if it's already installed. If you don't have NodeJs already installed follow the instructions herenode -v
- Install npm, if you don't have npm installed follow the installation guide here
- Navigate to the
backend_API
foldercd backend_API
- Install necessary dependencies, run
npm install
- There are different environments, each environment has an independent configuration file withing the
/backend_API/src/
directory.env
will be used when you use theproduction
environment.env.dev
will be used when you use thedev
environment.env.test
will be used when you use thetest
environment - 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
- Within the
/Frontend
directory, runyarn install
- To start the development server, run
yarn dev
- To build the app for production, run
yarn build
- To start the production server, run
yarn start
.
Starting the backend API
-
Within the
/backend_API
directory, you'll have to install all the necessary dependencies, runnpm install
-
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.
Contributors ✨
Thanks goes to these wonderful people (emoji key):
Orofin Adedamola A. 🚇 🎨 |
Richie 🚇 🤔 👀 |
Goodnews Sandy 👀 🚇 🧑🏫 |
Wahab Mufidat 🎨 |
Kelechi Okoronkwo 🚇 |
Obiora Ebuka 🚇 |
Okereke Chinweotito ⚠️ 🚇 |
Amin Musah Ahmed 🐛 |
Juliana Sau 🚇 🤔 |
JewelCodes 🚇 |
This project follows the all-contributors specification. Contributions of any kind welcome!