Mikamai's event management system, used by us as well as many communities around the world to gather and meet up. Publicly available at https://meetable.it.
Event Manager is a Phoenix application that exposes a GraphQL API for managing events and participations.
Authentication and Authorization rely on two OAuth 2.0 protocols, OpenID Connect 1.0 and User-Managed Access 2.0. OpenID is used for authenticating users and give them access to their own events and participations through OAuth 2.0 scopes, while UMA 2 is used to manage sharing permission over a group of users (for example, multiple organizers managing a group).
Any compatible provider should work, but the public instance for Meetable uses Keycloak, so this is what it is most tested against.
Supporting services such as PostgreSQL and Keycloak can be started as Docker containers.
Simply running docker-compose up -d
will start them in background and expose port 5432
for Postgres and 8080
for Keycloak. The application is preconfigured to use them.
Classic Phoenix procedures:
# Install dependencies
mix deps.get
# Prepare the database schema
mix ecto.migrate
# Start the app
mix phx.server
The app will be available on port 4000.
The recommended GraphQL client to use when developing the API is Insomnia, as it has first class support for both GraphQL and OAuth 2.0.
Other good clients are GraphQL Playground and Altair, but you need to manually provide OAuth 2.0 tokens as the Authorization
header, with Bearer
scheme.
If you don't wish to install a desktop application, or there are none available for your system, a web version of GraphQL Playground is available at https://localhost:4000/graphql/explorer.
The official web client for Meetable is available on GitHub.
Read our Code of Conduct and our Contribution Guide for more information about how to get involved.
Mikamai Event Manager
Copyright (C) 2019 MIKAMAI S.R.L.
This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more details.
You should have received a copy of the GNU Affero General Public License along with this program. If not, see http://www.gnu.org/licenses/.