Skip to content

IjayAbby/wikonnect

 
 

Repository files navigation

Welcome to wikonnect 👋

Version Documentation License: MIT Issues Forks Stars

Wikonnect

Wikonnect is an open-source e-learning platform that is designed to allow anyone to learn, create content, and contribute to the code. The initial courses offered on the platform will be around digital literacy, to get more people using the internet in more productive ways. Developed by Tunapanda Institute in Nairobi, Kenya. The original platform (called 'swag') was used to provide technology, design, and business training in low-income communities with low bandwidth.

Getting Started

The front-end is developed using Ember.js. We recommend getting started with Ember by going through the tutorials.

The back-end is developed using KoaJS. API doc is hosted at tunapanda.github.io/wikonnect)

Prerequisites

Tech Stack

Development Setup

Installing Node.js

Follow instructions for downloading and installing Node.js for your operating system from the official Node.js website.

Ensure you are installing Node 10 or greater.

Set up PostgreSQL

You should create a postgres user (with password), and set up database. (Don't forget to grant privileges to your user on the database!)

=# CREATE USER my_user WITH PASSWORD 'my_password';
=# CREATE DATABASE my_database;
=# GRANT ALL PRIVILEGES ON DATABASE my_database TO my_user;

Starting the Development Server

Open up Terminal/Powershell/bash and navigate to the directory where you want the project to live.

Clone this repository:

git clone https://github.com/tunapanda/wikonnect.git

Install the node packages in the main project directory...

cd wikonnect/
yarn

Server(API) setup


Now let's set up the server. First, go into the server directory and install the node packages.

cd server/
yarn

Then, rename the file server/config/db.example.js to server/config/db.js, then edit the credentials that will provide access to your development database. (Do not use the development database in a production environment)

development: {
    host: 'localhost',
    database: 'my_database',
    user: 'my_user',
    password: 'my_password',
  },

Next, you will want to set up your database and start your server.

Ensure that you have redis-server running locally in your pc.

For Macos and Windows systems, check out the Download page to download redis-server

To install it in a linux system, run the command below:

sudo apt-get install redis-server

To confirm that the service is active, use the command below:

sudo service redis-server status

If the service is not running, use the command below to start it:

sudo service redis-server start

To run the knex commands that follow later, there are 2 possible options:

  • Install knex CLI globally
  • prefix all the knex commands with npx e.g npx knex migrate:latest (If you have npx installed)

To check if knex CLI is installed globally, run the command below which shows the Knex CLI version:

knex --version

If knex CLI is not installed globally, install it using the command below and make sure to confirm that the installation was successful using the command above:

npm install -g knex

Running knex migrate:latest in the server/ directory will use the migration files in server/migrations to create and format the tables so that they will work with wikonnect.

To populate the database with dummy data (defined in server/db/seeds), run knex seed:run.

Now start your server! yarn start

If you see an Elasticsearch error, don't worry, you don't need Elasticsearch to run the app.

Designs

Head over to Adobe XD to see the complete design.

Front End set-up


Get Ember up and running

Install the node packages for the Ember app. Run yarn in wikonnect/frontend.

Now start your server!

yarn start

Now point your favorite browser to http://localhost:4200/ and you will be able to see the app.

Contributing

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • JavaScript 81.1%
  • HTML 12.1%
  • CSS 6.8%