× This Challenge was posted 2 weeks ago

Challenge Project

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!


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

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")
(★ Star us if you like the idea)

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

Help translating

To help translating, please visit our our translation guide.

Graphical translation status box from Weblate

License

  • AGPL – GNU Affero General Public License 3.0
This content is a preview from an external site.