Grad shape
Grad shape

Meetable

Polls and Events

About this project

Deploy

Meetable is a minimal events aggregator website.

You can see a live version of this project at:

Features

  • Discovery List of upcoming events on the home page, and archive view of past events.
  • Tags Events can have one or more tags. Commonly-used tags are shown on the home page as well as the "discover" page.
  • iCal feeds All lists of events have an iCal feed (home page, tag pages, etc) so you can subscribe to them in an external calendar.
  • Add to Calendar Events have an "Add to Calendar" link that exports either an iCal file or links to Google Calendar.

Event Pages

Events have a permalink that contains

  • cover photo
  • event name, date/time and location details
  • a link to an external website and ticket URL
  • a description of the event, which supports markdown and basic HTML formatting
  • a link to a timezone converter
  • RSVPs (an RSVP button appears for logged-in users)
  • photos, blog posts, and notes about the event

When logged in, you can add photos directly to an event page. Event pages also accept webmentions so that people can add photos and notes to the page from their own websites.

Setup

Requirements

  • PHP 8.2+
  • Composer
  • MySQL/MariaDB
  • Optional: Redis

Installation

This project is based on Laravel, so you can defer to their instructions if you encounter any issues.

Clone the source into a folder

git clone https://github.com/aaronpk/Meetable.git
cd Meetable

Install the project's dependencies

composer install

Make sure the storage folder is writable by the web server.

sudo chown -R www-data: storage

Create a database in your MySQL server, and create a user that has full access to the database. For example:

sudo mysql
> CREATE DATABASE meetable;
> GRANT ALL PRIVILEGES ON meetable.* TO 'meetable'@'127.0.0.1' IDENTIFIED BY 'some-password';

Copy .env.example to .env and fill it out following the instructions in the file.

cp .env.example .env

Most importantly, make sure you fill out the database section or the next step won't work.

Once you've configured everything in the .env file, you can run the migrations to set up the database.

php artisan migrate

Generate an application key:

php artisan key:generate

In a production system you'll want to make sure the background worker script is running:

php artisan queue:listen

Alternatively, you can set up a cron job to run every minute which will process any jobs on the queue:

php artisan queue:work --stop-when-empty

Web Server

Configure your web server to serve the project's public folder from the domain name you've set up.

For nginx:

server {
  list
Technologies & License
MIT PHP
Quick Deploy

Deploy this project to cloud platforms with one click