gitevents / core

GitEvents core; manage your user group with GitHub
MIT License
41 stars 19 forks source link

NottsJS Hack Day #82

Open iancrowther opened 8 years ago

iancrowther commented 8 years ago

gitevents What is it? Plugable Event management through github. Create issues to fire web hooks requests to the services you require via plugins.

What is core? core is a shell repo used to trigger webhooks via github issues

What can i do with this? create a talk proposal via a github issues. add a milstone which is the event date.

how to setup you github org 3 repos.

Minimum Requirements a github account a github repo

set a purpose for the repo:

once you decide the purpose, you can execute gi-labels

we need to be able to deploy plugins to digital ocean

PatrickHeneise commented 8 years ago

That sounds great. The setup could be a lot simpler though.

Minimal requirements: GitHub Org:

What's currently working (more or less):

The optimal deployment should be a Docker container that gets the initial config from a Gist. If the config changes, just re-deploy the container. No CLI, no generators, no trouble ;).

My personal "best solution" would be:

  1. deployed on a digital ocean as docker container, listening to web hooks
  2. event admin creates a milestone for the next event
  3. speaker adds an event
  4. gitevents checks if requirements are met (title, abstract, meta (language, level)) - meta can be optional
  5. event admin marks a talk as a proposal - stored in proposals.json
    • tweet about the proposal and open it for comments
  6. event admin marks the talk accepted
    • gitevents moves or copies to events-2015.json
    • automatic tweets
    • a commit on events-2015.json would trigger a test/build on @codeship, this could trigger a metalsmith build to have an updated version of the website in the gh-pages branch
    • create or update meetup.com event, write event-id in events-2015.json
    • create or update ti.to event, write event-id in events-2015.json
    • create or update Lanyrd, write event-id in events-2015.json
    • ...
  7. event admin a few days before an event: close accepted talks
  8. once the milestone is complete (all issues linked to a milestone are closed):
    • send newsletter with talk data through mailchimp
    • tweet
    • announce the event on meetup
PatrickHeneise commented 8 years ago

optional: if there's another issue linked to the milestone (for example an article, links, jobs etc.) these should be included in the newsletter.

iancrowther commented 8 years ago

GitEvents - Hackday

Gitevents is a plugable event management system layered on top of GitHub. Making use of the Github API and WebHooks, GitEvents allows event organisers to automate tasks by interacting with issues.

GitEvents promotes service plugins as we understand every event is different.

Structure

GitEvents and its plugins must be self hosted and at its most basic, is made up of two components, the core and the webhook.

What is Core?

tbd

What is WebHook?

tbd

What does it do?

Currently GitEvents listens to talk proposal issues and generates a json object that your event website can consume via the client API.

Config

GitHub Org Repos

 Speaking Repo Setup

Setup this repo with the following labels:

Goals

Onboarding

We would like to be able to init the repo from the cli in order to enter the basic config keys and select your plugins, similiar to yeoman.

Deploy Scripts

It would be great to be able to enter your dteails and automatically deploy GitEvents and your selected plugins onto your prefered cloud provider. For the purpose of the hackday, we could use Heroku + Papertrail.

Twitter Plugin

We would like to be able to automatically tweet speaker details once a talk proposal has been accepted for a milestoned event.

Ti.to

We would like to be able to create a new ti.to event and setup the ticket releases via the API. Due to the lack of a milestone webhook, we need to have a think about how to trigger the creation of a new event.

Mandril

We want to be able to send emails

Proposal Bot

We started to create a bot that would validate a talk proposal issues and reply if the interface was not adgered to.

Simplify WebHook

There is a need to simplify the workflow within this core module. There is also a need for unit tests. We have been discussing using a 3rd party database such as firebase to reduce js state and logic.

Dockerize

We want the capability to deploy with easy via docker. Primarily deployed to digital ocean as docker container, listening to web hooks. The optimal deployment should be a Docker container that gets the initial config from a Gist. If the config changes, just re-deploy the container. No CLI, no generators, no trouble ;).

Website

We need a website to explain what GitEvents is. This could be driven from the README

Doc's

We need some help to flesh out the doc's. There are a lot of concepts to explain in order to get this system working for you. We need to make the onbaording doc's much more concise. It would be amazing to have a visualisation of the end 2 end work flow

Build Tools

We could use CodeShip + MetalSmith to create a CI chain to build and deploy either GitEvents or the Website.

Current WorkFlow

  1. event admin creates a milestone for the next event
  2. speaker adds an event
  3. gitevents bot checks if requirements are met (title, abstract, meta (language, level)) - meta can be optional
  4. event admin marks a talk as a proposal - stored in proposals.json
    • tweet about the proposal and open it for comments
  5. event admin marks the talk accepted
    • gitevents moves or copies to events-2015.json
    • automatic tweets
    • a commit on events-2015.json would trigger a test/build on @codeship, this could trigger a metalsmith build to have an updated version of the website in the gh-pages branch
    • create or update meetup.com event, write event-id in events-2015.json
    • create or update ti.to event, write event-id in events-2015.json
    • create or update Lanyrd, write event-id in events-2015.json
    • ...
  6. event admin a few days before an event: close accepted talks
  7. once the milestone is complete (all issues linked to a milestone are closed):
    • send newsletter with talk data through mailchimp
    • tweet
    • announce the event on meetup
iancrowther commented 8 years ago

links:

PatrickHeneise commented 8 years ago

we need to digest this into README etc.

iancrowther commented 8 years ago

agreed