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.
-
Redis for in-memory data cache.
-
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
- Proceed to set up the development environment manually or using Docker.
- Docker Engine
- Ubuntu installation
- Fedora installation
- Debian installation
- Mac installation - Installed as docker desktop
- Windows installation - Installed as docker desktop
- If your Docker engine instance is running on your terminal, navigate into the project root directory:
cd wikonnect/
-
Rename 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.
- Node.js v14.16.0
- PostgreSQL database server
- Redis database server
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 my_user WITH PASSWORD 'my_password';
=# CREATE DATABASE my_database;
=# GRANT ALL PRIVILEGES ON DATABASE my_database TO my_user;
For macOS and Windows systems, check out the download page on how to download and install a Redis server.
To install on a Linux system, run the command below:
sudo apt-get install redis-server
After successful installation, confirm that the service is up and ready using the following command:
sudo service redis-server status
If the service is not running, use the command below to start it:
sudo service redis-server start
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
-
Rename the database configuration file
server/config/db.example.js
toserver/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', }
-
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:
- Navigate into the frontend directory
cd frontend/
- Install the frontend dependencies
yarn
- Start the frontend server
yarn start
- If the above steps were successful, navigate to your favorite browser and go to http://localhost:4200/ to see the running app.
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
![]() |
![]() |
![]() |
Head over to Adobe XD to see the complete design.
- You should join our Discord server to get connected with people interested in this project and to be aware of our future announcements.
- Please read the suggested steps to contribute code to the Wikonnect project before creating issues, forking, or submitting any pull requests.
This project is licensed under MIT. See the license file for details
- Moses Okemwa - Lead Backend developer and maintainer
- Proverbial Ninja - Lead Frontend developer and maintainer
- Murage Martin - Full Stack Developer
- Brian Marete - Frontend Developer
Thanks goes to these wonderful people (emoji key):
Moses Okemwa 💻 🎨 |
Kiki 💻 🎨 |
mrlarso 💻 |
Jake Lee Kennedy 💻 |
Benson Muite 💻 |
Cliff Owino 💻 |
Mutugi 💻 |
Avic Ndugu 💻 |
BonfaceKilz 💻 |