Wikonnect seeks to bridge the digital divide through the provision of digital literacy skills. Management support through Asha (www.asha.io).
MIT License
Wikonnect is an open-source e-learning platform designed to allow anyone to learn, create educational content, and contribute to building the platform as a designer or a software developer. 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.
Come say hi 👋 on our Wikonnect Community Discord Server!
The frontend is developed using Ember.js. We recommend getting started with Ember by going through the tutorials.
The backend is developed using KoaJS. The API docs are hosted at tunapanda.github.io/wikonnect
EmberJS for frontend.
KoaJS for backend API.
Objection.js as an ORM and Knex.js for building SQL queries
PostgreSQL for main persistence storage.
chai for backend unit tests.
Cypress for frontend integration tests.
Yarn project package manager.
ElasticSearch for search and indexing services
Docker for containerization
git clone https://github.com/tunapanda/wikonnect.git
cd wikonnect/
Copy the .env-sample
configuration file to .env
. (Never commit this file)
Update the above .env
file configurations to match your desired setup.
Build and run the project container services using the docker-compose
command:
docker-compose up --build
NOTE The NODE_ENV
should be set as development
to allow live reload on code changes.
Follow instructions on how to download and install Node.js based on your operating system from the official Node.js website.
Ensure you install Node v14.16.0
Create a postgres user (with password), and set up a database for the project (Don't forget to grant privileges to the user on the database!). :
=# CREATE USER wikonnect_user WITH PASSWORD 'password';
=# CREATE DATABASE wikonnect;
=# GRANT ALL PRIVILEGES ON DATABASE wikonnect TO wikonnect_user;
Install the project-wide dependencies on the root project directory...
cd wikonnect/
yarn
Backend set up steps:
Navigate into the server directory
cd server/
Install the backend dependencies
yarn
Copy the database configuration file server/config/db.example.js
to server/config/db.js
Replace the database configuration to match 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',
}
Copy the email configuration file server/config/email.example.js
to server/config/email.js
You can use Mailtrap for an email sandbox environment. Set up a mailtrap.io account and copy the credentials provided for Nodemailer setup into the development section of the server/config/email.js
file eg:
development: {
provider: "smtp.mailtrap.io",
auth: {
user: "xxxxxxxxxxxx",
pass: "xxxxxxxxxxxx",
},
defaultFrom: process.env.FROM_EMAIL_ADDRESS,
},
Assuming the Postgres server is ready and above configuration credentials are correct, run the
latest migrations (defined in server/migrations
):
yarn db:init
Optionally, one can populate the database with dummy data (defined in server/db/seeds
) by running:
yarn db:seed
If the above steps were successful, you can finally start the backend server
yarn start
NOTE: You can safely ignore any Elasticsearch connection error.
Frontend set up steps:
cd frontend/
yarn
yarn start
NOTE: For easy Ember addons installation and project files generation using available blueprints, we highly recommend installing Ember CLI globally:
yarn install -g ember-cli
This project is licensed under MIT. See the license file for details
Thanks goes to these wonderful people (emoji key):