Code Monkey home page Code Monkey logo

gatherpress's Introduction

GatherPress

Stable tag: 0.30.0 Tested up to: 6.6.1 License: GPL v2 or later Tags: events, event, meetup, community Contributors: mauteri, hrmervin, patricia70, carstenbach, jmarx75, stephenerdelyi, calebthedev, prayagm, pbrocks, linusx007

GatherPress, powering our community's event management needs.

GPLv2 License Coding Standards PHPUnit Tests JavaScript Unit Tests E2E Tests SonarCloud Dependency Review

WordPress.org plugin directory guidelines Playground Demo Link

WordPress Plugin Required PHP Version WordPress Plugin: Required WP Version WordPress Plugin: Tested WP Version WordPress Plugin Version WordPress version checker

WordPress Plugin Active Installs WordPress Plugin Downloads WordPress Plugin Rating

Description

GatherPress, a plugin created by and for the WordPress community, is a response to the community's desire for novel event management tools that meet the diverse needs of event organizers and members. Its agenda and roadmap align with that of the WordPress community, ensuring that it evolves in tandem with our collective wants and needs.

We propose a pilot program to test GatherPress, a community-developed plugin, within interested and active WordPress meetup groups. This initiative stems from our community’s need for an innovative event management tool tailored to the unique demands of WordPress event organizers and participants. @Patricia BT in January 2024 on make.wordpress.org

This project is for the collaborative effort to build a compelling event management application using open source tools such as WordPress and BuddyPress and the grit sweat and love of the community, for the community.

We're creating the very network features we need to host events and gather well.

https://www.youtube.com/watch?v=BnYS36C5d38&t=2s

Features

  • Event Scheduling: set dates, times, and provide event information details.
  • Attendee registration.
  • Allow attendees to add guests.
  • Ability for attendees to be listed anonymously (only administrators will see their names).
  • Emailing system: to send emails to all the group members, or a specific event attendees, non-attendees, and those on the waiting list.
  • In person events: add the venue, with an optional map (refer to point 4)
  • Online event management: add the video meeting URL.
  • Multi-event management: capability to handle multiple events simultaneously.
  • Multisite environment: This setup allows for centralized management while providing flexibility for each site to host its own unique events with its settings (language, timezone, date time format) and set of users.
  • Works with blocks.
  • Fully internationalized.
  • Freedom to add content besides the default event/venue blocks, to remove default blocks, and add synced patterns (useful for adding consistent information across all events).

Upcoming features

  • Import events from meetup.com with an add-on plugin. (#)
  • Recurring events. (#)
  • Calendar block. (#)
  • Email notification when event starts. (#)
  • Event federation using ActivityPub (#)

Contribute

If you wish to share in the collaborative of work to build GatherPress, please drop us a line either via WordPress Slack or on GatherPress.org. The development location of the GatherPress project can be found at https://github.com/gatherpress/gatherpress. All contributions are welcome: code, design, user interface, documentation, translation and more.

Third-Party Libraries

This plugin leverages the following third-party libraries for various functionalities:

  • React-Modal: Facilitates the creation of modal dialogs in React components.
  • React-Tooltip: Provides customizable tooltips for React applications.
  • Leaflet: Provides global, open-source mapping functionality

Screenshots

  1. Create a new event
    Create a new event
  2. Create a new venue
    Create a new venue
  3. General Settings
    General Settings
  4. Leadership Settings
    Leadership Settings

Installation

  1. Download the plugin: you'll find the latest release on the GatherPress GitHub repository, under Releases > Assets and download gatherpress.zip.
  2. Install it in your WordPress instance: go to WP Admin Plugins > Add new plugin. Choose the gatherpress.zip file you just downloaded.
  3. Activate the plugin.

Requirements

To run GatherPress, we recommend your host supports:

  • PHP version 7.4 or greater.
  • MySQL version 5.6 or greater, or, MariaDB version 10.0 or greather.
  • HTTPS support.

Frequently Asked Questions

What external services are used in GatherPress?

  • Mapping Services: We use OpenStreetMap and Google Maps to display meeting locations on a map. To achieve this, we send the address to OpenStreetMap or Google Maps for rendering.
  • Calendar Integration: GatherPress also supports "Add to Calendar" functionality using Google Calendar and Yahoo! Calendar.

Configure GatherPress

In WP Admin, go to Events > Settings.

You can change different settings such as:

  • Show publish date as event date for events.
  • The default maximum limit of attendees to an event.
  • Anonymous RSVP.
  • Date Format.
  • Time Format.
  • Display the timezone for scheduled events.
  • Upcoming Events page.
  • Past Events page.

Create an Event

In WP Admin, go to Events > Add New.

By default, a few blocks are populated, you can keep them or delete them and you can add more blocks.

  • The Event date block allows you to define the start and end dates and times of your event, as well as the timezone.
  • The Add to Calendar block enables your users to add the event to their preferred calendar directly from the published event on the frontend.
  • The Venue block lets you choose whether your event is online or in a venue. You can select the venue (refer to point 4) and the map settings: display, zoom level, type of map and map height.
  • The RSVP block enables members to confirm they attend or do not attend an event.
  • The description of the event is a normal paragraph block. You can add anything with any block here.
  • The RSVP Response block displays a list of members who have confirmed they attend or do not attend an event.
  • The event settings allow you to modify all the above mentioned settings, enable or disable anonymous RSVP, choose Topics, notify members or attendees, as well as standard WordPress settings such as the featured image, the excerpt, allow or disallow comments, etc.

Create a Venue

In WP Admin, go to Events > Venues.

In the Venue block, you can define:

  • The full address, telephone, and website of the venue.
  • The map settings.

Create an Event Topic

In WP Admin, go to Events > Topics.

Topics are like post categories, but for events.

Contribute

If you wish to share in the collaborative of work to build GatherPress, please drop us a line either via WordPress Slack or on GatherPress.org. The development location of the GatherPress project can be found at https://github.com/gatherpress/gatherpress. All contributions are welcome: code, design, user interface, documentation, translation, and more.

Collaborator Access

To get write access to the GitHub repo, please reach out to our GitHub Administrators: Mervin Hernandez and Mike Auteri.

To get access to GatherPress.org via SSH or WP Admin login, please reach out to our GatherPress.org Administrator: Mervin Hernandez.

Read Developer Documentation

Find the developer documentation inside the plugins' docs folder.

What’s about the PRO version?

As a Community powered plugin, GatherPress is already the PRO-version.

Because we strive for close-to-core development, love decisions - not options and follow a lot of well known best-practices within the WordPress space, we can and do focus on what matters most - powering our community's event management needs.

GatherPress‘ best-practices:

Reminder that GatherPress is still in Alpha

As we continue to refine and develop the plugin, please use the GatherPress Alpha plugin alongside the core GatherPress plugin. The Alpha plugin manages breaking changes easily: just make sure it is up-to-date, activate it, go to the Alpha section under GatherPress Settings, and click "Fix GatherPress!" after updating GatherPress. This process helps us avoid technical debt as we work towards launching version 1.0.0 of the plugin.

Changelog

See complete changelog at https://github.com/GatherPress/gatherpress/releases.

Upgrade Notice

1.0.0

=======

Is GatherPress WordPress Multisite compatible?

Yes, GatherPress can be run on a network of sites. The additional database tables it needs, will be created automatically for each new site if the plugin is network-activated.

GatherPress can also be activated per site.

What’s about the PRO version?

As a Community powered plugin, GatherPress is already the PRO-version.

Because we strive for close-to-core development, love decisions - not options and follow a lot of well known best-practices within the WordPress space, we can and do focus on what matters most - powering our community's event management needs.

GatherPress‘ best-practices:

Reminder that GatherPress is still in Alpha

As we continue to refine and develop the plugin, please use the GatherPress Alpha plugin alongside the core GatherPress plugin. The Alpha plugin manages breaking changes easily: just make sure it is up-to-date, activate it, go to the Alpha section under GatherPress Settings, and click "Fix GatherPress!" after updating GatherPress. This process helps us avoid technical debt as we work towards launching version 1.0.0 of the plugin.

Changelog

See complete changelog at https://github.com/GatherPress/gatherpress/releases.

Upgrade Notice

1.0.0

See: https://gatherpress.org/releases/version-1-0-0

gatherpress's People

Contributors

01prayag avatar actions-user avatar bluecollarcoders avatar carstingaxion avatar dependabot[bot] avatar deshabhishek007 avatar hauvong avatar javiercasares avatar jeffpaul avatar jmarx avatar linusx avatar malgrauk avatar mauteri avatar mervinhernandez avatar nilovelez avatar patriciabt avatar pbrocks avatar phoopee3 avatar prashantabellad avatar prayag11 avatar stephenerdelyi avatar swissspidy avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

gatherpress's Issues

PHP refactor of core functionality

Refactor Event class; Add utility class (move Helpers to utility class); Attendee class may be merged into Event class. Event class no longer singleton but extends an event post when a post_id is supplied. Move some things from Event/Attendee classes to Setup class.

CSS cleanup

  • Remove tailwind CSS and include basic styling for blocks.
  • Add body class gp-theme-THEME to allow easy theme styling

ADD Zoom Integration v2

Updated: Zoom Module v1 Scope
Start with simple link that can be Zoom or anything else (like Meetup does).

Queued: Zoom Module v2 Scope
Eventually explore integrating Zoom link as an embeddable block for events to make attending online super easy right from the browser.


TEST Plugin Integration

  1. INSTALL WP Repo Available Integration (Mervin may have a test client he can sandbox this in)
  2. CREATE Sample event + capture custom data for the RSVP
  3. REPORT Back to GP team on the functionality available, and whether we can incorporate all/some into our next version release

Create settings page

create class-settings.php that manages settings such as role names and other language that is configurable.

BLOCK Create custom block for presenter(s)

Create a custom block for presenter(s). This block will allow 2 things:

  • Selection of user(s) in network. Not necessarily in the site group, but in users across network. This will be an autocomplete field.
  • Description / Bio of user(s).

The presentation will be data from the user (photo, name, profile link) and that description / bio.

Meta data will be saved to each user with the ID of the event and blog ID, so we can display information about the event on the users' profile somewhere.

We should also save this as meta data in the event.

Remove the block should remove meta data from user/event.

Add non-user attendee feature

This feature allows users without an account to RSVP to an event. Basic info (First name, Last name, Email, possibly other fields that can be added) will trigger and email send with a link to the address to confirm. Infrastructure can include a queuing system that deletes non-confirmations every 24-48 hours. More thought/discussion should be given to this feature to flesh it out a bit more.

Update to Attendance List block

Styling and markup updates need to happen here. Also need to add a See all link to have a modal pop up and scroll through all attendees making API calls and loading. Block itself should limit what it shows for scaling.

Make gp.org MU

Tasks for Mervin

  • 1. Make gatherpress.org MU
  • 2. Add mike as a user
  • 3. Link gatherpress.org to GitRepo
  • 4. Add mike as SSH user on Spin2 (Mervin's)

Setup MU

  • Subdirectory is fine ... let's not worry about subdomain for now

Rearchitect Organizer Role feature

Currently organizer roles match WordPress roles, but that's pretty inflexible and was an idea for when the project was a WordPress application vs plugin.

Organizer role should be a taxonomy terms separate from WordPress roles.

EVENTS Recurring events feature

Add a feature where an event can be recurring. Basic features include frequency of recurrence and ability to override contents of recurrence or do one-off updates on a recurring events content. WP Cron will create events (maybe default to X number out (maybe default to 4) that can be configured in global settings and overwritten in event recurrence settings.

CREATE Non-User RSVP Workflow

This feature allows users without an account to RSVP to an event. Basic info (First name, Last name, Email, possibly other fields that can be added) will trigger and email send with a link to the address to confirm. Infrastructure can include a queuing system that deletes non-confirmations every 24-48 hours. More thought/discussion should be given to this feature to flesh it out a bit more.

Also see CampTix
Also see #86

Setup Git Submodule on GatherPress.org

Setup Git "GatherPress" to deploy automatically to "GatherPress.org"

  • Created repository for the website (different from the plugin project). This was done in WingManWP's GitLab account, and attached to SpinUp WP for gatherpress.org
  • Created submodule pulling in this gatherpress (project) repo
  • Tested/confirmed automatic deployment of pushes to the "site" repo
  • Debug why changes to this gatherpress repo, do not automatically push to the site repo (where this is a submodule)

Rename table

Two custom tables we have:
wp_gp_attendees
wp_gp_event_extended

To be consistent, let's rename wp_gp_event_extended to wp_gp_events. This is a breaking change so best to do it now rather than later.

Support to PHP 7.0

Support to PHP 7.0. WordPress supports to 5.6, but that should be going away soon. Also would require reworking of a lot of code.

Refresh the README Phrasing

  • 1. Refresh phrasing for the description of the project
  • 2. Add another layer to the docx
  • 3. Update Repository Description (for GitHub meta)
  • 4. Add icon to the repository itself

CREATE Block - Event Date

A block that will display the event start/end date and time. Can be basic for now, but should eventually have configuration options for display.

Make Upcoming / Past Events React blocks rather than static blocks

Currently the Upcoming and Past Events blocks are non-dynamic blocks and are rendered via an API endpoint in the editor. These blocks would be a lot more interesting if they were dynamic blocks and had features that allowed control of attending or not attending right from that block. It would be easier to maintain this block as well and we can combine common components and styling more easily.

Remove usage of axios for API calls and start using apiFetch.

Breakout BuddyPress components

class-buddypress.php and class-email.php are specific to BuddyPress. We want the plugin to be enhanced by using BuddyPress, but not require BuddyPress. There's a few @todo within code to allow BuddyPress components to be able to hook in when BuddyPress plugin is enabled.

Venue Feature v1

Venue Feature v1
Add the ability to save venues and choose among saved venues in events. Venue will have name and address and include a block to display address and possibly Google map plot.

Venue Feature v2
Google Map integration

Setup wp-env for plugin

  • Setup wp-env so local environment in Docker can be setup
  • Add to README steps to setup
  • Bonus if you have time: run unit tests and phpcs in Docker and add to README

Attendance Selector and Attendance List block updates

For these blocks, let's pass the event ID to them directly rather than via GatherPress object. These blocks should be functional when they are not on the event page, so someone could choose to attend/not attend and see the list of attendees. This requires a slight refactor of how data is passed to the blocks and will require an API calls and new endpoint to get info about how the status of the logged in user when viewing the event module and interacting with it.

ADD Event URL (Event Venue)

Feature Description

Updated: Zoom Module v1 Scope
Start with simple link that can be Zoom or anything else (like Meetup does).

Queued: Zoom Module v2 Scope
Eventually explore integrating Zoom link as an embeddable block for events to make attending online super easy right from the browser.

Test

  • Only displayed if attendee is a confirmed attendee (not in the waiting list)

MOVE GP.org Repo from GitLab to GitHub

As of February 26, gatherpress.org is hosted by Mervin on SpinUp, and the codebase is in one of his GitLab repo's.

MOVE Repo from GitLab to GH (under GatherPress organization)

  • MOVE the repository contents
  • RECONNECT SpinUp site to refer to GH instead of GL repo

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.