Giter VIP home page Giter VIP logo

convene's Introduction

Convene

Convene secure, affordable, always-available digital Spaces where anyone can (play || work || grow || be). ๐ŸŽฒ ๐Ÿ‘ฉโ€๐Ÿ’ป ๐ŸŒฑ ๐Ÿ›‹๏ธ

Overview

Convene serves as the Means of Connection. Create a Space to co-conspire, relax, learn, play, work, swap recipes, read books, or really anything!

Convene provides the underlying infrastructure for a Neighborhood of Spaces. Operators help Clients design their Spaces and keep the Neighborhood up and running. Maintainers and Contributors enhance Convene with:

  • Furniture, fun toys and powerful tools
  • Utilities, integrating external services like Stripe, Calendly, Jitsi, and more.

The Internet is for People, so why not put People in charge of their digital spaces?

Objectives

To put it succinctly, Convene provides:

  1. Digital infrastructure, toys, and tooling
  2. For small groups and individuals
  3. Co-creating a better future.

We have two milestones in flight at any one time:

Using Convene

[Zinc] maintains a Convene Neighborhood at https://convene.zinc.coop. For people who want to run their own Neighborhood of Spaces, consider purchasing a Convene Operator License.

Purchasing a Convene Operator License.

Individuals and non-commercial organizations may run their own Convene deployment however they see fit without requiring payment.

However, if the person or organization engages in commerce, defined as taking currency in exchange for goods or services, then the organization must purchase a license to use Convene.

Pricing is determined on a case-by-case basis. Please reach out to [email protected] for licensing information.

Help and Support

Organizations and individuals who are comfortable relying on free Community Support are encouraged to start a discussion. Maintainers respond as they are available.

Paid support is available for $135 USD per hour1.

Contributing to Convene

We're always excited for new contributors! Read more in our guide to contributing, located in CONTRIBUTING.md

Convene Web

System Overview

The central piece of Convene is a Ruby on Rails server that is responsible for:

  • serving the Convene UI
  • managing users, spaces, rooms, permissions, etc

This high level view of our design shows the personas and segments we are focusing on initially with Convene. It also includes our current vision of the types of spaces, rooms and participants it serves and clarifies the design of privacy permissions.

The Convene UI is based on Rails standard templating system, with heavy use of:

  • Stimulus JS
    • the entry point for our JavaScript is in app/javascript/controllers/index.js, which loads all app/javascript/*_controllers.js files
  • Tailwind CSS to help speed up making good-looking UIs

Jitsi is Convene's video call infrastructure. The video_room_controller.js is the entry point where we load a Jitsi video call iframe into Convene's UI.

If you want to run Jitsi locally, see the configuration provided in infrastructure/jitsi-meet-local.

Architecture overview diagram

Last updated: April 2021

Original on Miro: https://miro.com/app/board/o9J_lLrbz1g=/

Configuring Your Development Machine

See Developer setup and documentation.

Debugger

To run pry or byebug, run bin/connect web.

Developing Mailers

Set SMTP_* environment variables to configure Action Mailer.

To preview mailers, visit http://localhost:3000/rails/mailers/

Testing Convene

The Convene interface is tested in two ways:

  1. Open-box unit and integration tests, which are defined in the spec folder
  2. Closed-box story tests, which are defined in the top level features folder

Many enhancements and fixes can be made without updating the story tests, while almost all changes will want updated unit or integration tests.

For story tests, we use Cucumber to encourage us to write tests as human-friendly documentation.

For unit and integration tests, we use RSpec. RSpec is a nice complement to Cucumber, in that it allows us to directly integrate with the underlying Ruby and Rails code without writing human or computer interfaces that require inter-process communication.

This helps us write small, focused tests that deal with 1~3 Ruby classes instead of having to spin up a working instance of the entire application.

Tests that need database access should require "rails_helper", and tests that can be executed without a database should require "spec_helper".

Overview of the features folder

Last updated: April 2021

Original on Miro: https://miro.com/app/board/o9J_lLrbz1g=/

About The Zinc Collective

Convene is maintained by a dedicated community of volunteer Contributors and Maintainers known as the Zinc Collective, a digital product and services cooperative.

We have a Pledge and Code of Conduct. And anyone can become a contributor and/or maintainer.

Footnotes

Paid Support

Our paid support rate is pegged to 3x the San Francisco Living Wage for a couple with a single worker raising three children.

This rate is negotiable for organizations that offer Zinc a patronage account or corresponding equity stake.

Paid support clients may also request a deferred payment program, with terms to be determined on a case-by-case basis.

convene's People

Contributors

anaulin avatar cjoulain avatar dependabot[bot] avatar kellyah avatar maximegalon5 avatar roseaboveit avatar user512 avatar zspencer avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.