openki
A tool to build up and organize local communities
Openki - a peer to peer school where everyone can learn from others. Openki supports the growth of active local communities which meet regularly through self-organized courses. It makes education a collective experience of everyday life, self-organized, participatory, inclusive, and fun.
{ hacknight challenges }
Use OpenKI to sign up for or even to propose a new course in your area. The easiest way to do this is at openki.net
Use the GitLab repository to respond to one of the open issues. Or try one of the advanced features, like InfoScreens, Frames or Calendar Export, and submit feedback to the dev team on your experiences.
Install your own OpenKI server, and see how far you get along in the code!
![Armillaria mellea](https://upload.wikimedia.org/wikipedia/commons/thumb/8/84/Armillaria_mellea%2C_Honey_Fungus%2C_UK_1.jpg/270px-Armillaria_mellea%2C_Honey_Fungus%2C_UK_1.jpg)
Stu's Images - CC BY-SA 3.0
Openki
Platform for open education – Free software built with Meteor.js and React
An interactive web-platform to provide barrier-free access to education for everyone. Openki is a simple to use open-source tool for local, self-organized knowledge-exchange: As a foundation for mediating non-commercial education opportunities, as interface between people who are interested in similar subjects, and as an instrument which simplifies the organization of “peer-to-peer” sharing of knowledge.
![arrow diagram showing connection between individuals, comunities, event-locations and calendars](https://cloud.githubusercontent.com/assets/9354955/8768227/87a178c6-2e78-11e5-8ba8-a35c834ecda3.png)
Beside the longterm public installations, Openki can be used at unconferences, BarCamps as well as in democratic schools and participatory festivals. [ read on...](https://about.openki.net "our blog")
Use or try it
Live: openki.net
Demo / playground: sandbox.openki.net
Pre-release: dev.openki.net
Features
Frontend: - :pencil: Easily propose topics and events - :speechballoon: Simple discussion board per course - :mortarboard: Extendable participant roles - :cat: Categories with sub-categories - :roundpushpin: Regions and venue system - :whiteflower: Groups-, community- and program functionality with filters
Integrations: - :computer: Multiple kiosk screen views with upcoming events (docs) - :pager: Iframe-URLs to dynamically embed views into other pages (docs) - :date: Calendar and iCal exports (docs) - :key: Single-Sign-on (OAuth: Facebook, Google, GitHub...) - :ideographadvantage: I18n: GUI for crowdsourced translation (using Weblate) (docs) - :electricplug: JSON API, read-only (docs)
Further: - :envelope: E-mail notifications - :mailbox: Private messaging - :openfilefolder: File upload - :mag: Fulltext-search - :iphone: Responsive design - :bar_chart: Statistics and evaluation - :door: multitenancy (internal, private usage) - :ghost: Customizability, some white labeling
Intended features
- :whitelargesquare: White-labeling per groups, organizations and regions
- :chartwithupwards_trend: Visual statistics
- :closedlockwith_key: More privacy settings
- :heavycheckmark: Voting-/polling-system, fix-a-date schedules
- :iphone: Smartphone App
- ...see more in our issues.
Please upvote new features you would like to see or propose new ones.
Contribution
Code submissions are welcome. To submit a change, fork this repo, commit your changes, and send us a merge request.
In the interest of having an open and welcoming environment for everyone, we agreed on our Code of Conduct. By participating in this project you agree to abide by its terms.
Installation (Linux, OSX and Windows)
- To install Meteor locally, run:
curl https://install.meteor.com | sh
(or download the installer for Windows) - Download and unzip or
https://gitlab.com/Openki/Openki.git
Openki into/some/path
. cd /some/path/Openki
meteor npm install
(sometimes twice)- Run
meteor npm run dev
(We support server side debugging. For help, see: https://nodejs.org/en/docs/inspector) - Browse to localhost:3000 -> done.
Admin user is called greg
with pass: greg
, any other visible user has pass greg
as well.
Further reading in our wiki
Running the tests
Run tests with: meteor npm run test meteor npm run test-live meteor npm run app-test
Add --grep=<pattern>
at the end to only run tests that match the pattern. eg. meteor npm run test-live --grep="Propose course via frame"
Note: To run the app-tests, you need a chromedriver
binary. On Debian, you can get one with apt install chromuim-driver
. Also make sure to run meteor npm install
.
Run linters and type check with these commands:
meteor npm run type-check
meteor npm run es-lint
meteor npm run sass-lint
Run auto formatting
Format files and automatically fix fixable problems with these commands:
meteor npm run es-lint -- --fix
meteor npm run sass-lint -- --fix
meteor npm run html-format
Note: We use typescript and eslint with prettier for *.js files, stylelint with prettier for *.scss files and beautify for *.html. You can install their extensions in your IDE to automatically execute the formation when saving.
Fixing weird errors
In case you get weird errors when starting (eg. error 14) try this command:
meteor npm run reset
Documentation
- The technical documentation is here on GitLab in the :book: Wiki
- More documentation can be found on our blog
Contacts
- Technical Support (only concerning technical and conceptual aspects of the Web Platform): supportätopenki.net
- Concerning regions: regionsätopenki.net
- Community (rooms, mentors, communication, etc): communityätopenki.net
- Sensitive, security related issues can be reported to the following email: securityätopenki.net. Here you get some more info about it.
Help translating
To help translating, please visit our our translation guide.
License
- AGPL – GNU Affero General Public License 3.0