Skip to content
A tool for managing email mailing lists, events, and RSVPs.
Ruby HTML CSS JavaScript
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
app
bin
config
db
lib
log
public
spec
tmp
vendor
.gitignore
.rubocop.yml
.ruby-version
.travis.yml
Gemfile
Gemfile.lock
LICENSE
README.md
Rakefile
config.ru
custom_plan.rb
package.json
roadmap.txt
zeus.json

README.md

Build Status

An app to manage event mailing lists and RSVPs.

Users are not required to authenticate, and will use unique URLs from emails to access their account management pages and events pages. Administration will require authentication. A single app can ran run multiple mailing lists, and users can decide which lists to be on.

Brief setup instructions

  • Get a mailgun account and mailgun API key
  • Install ruby, the version specified in .ruby-version
  • Install postgres on your system. This varies system to system.
  • Add a postgres superuser 'rails' with password 'rails'
    • $ psql postgres
    • postgres=# create user rails with password 'rails';
    • postgres=# alter role rails superuser createrole createdb replication;
  • Install bundler: $ gem install bundler
  • Install everything else: $ bundle install
  • Prepare the database: $ bundle exec rake db:create db:migrate
  • Optionally, seed the databases with bogus data $bundle exec rake db:seed
  • Set your development env variables in .env
    • See required keys in config/initializers/dotenv.rb
    • Each line should look like EMAIL_DOMAIN=example.com
  • Make sure to set your environment variables in your CI and prod environments, too!

Project Roadmap

  • Application
    • Implement config-driven mailing list name
    • Implement config-driven email domain management
    • Implement config-driven domain
    • Implement config-driven admin email address
    • Use localhost:3000 in emails for emails sent from development env
  • User Registration
    • A user can register an account
    • A user receives a confirmation email upon registration
      • The confirmation email lists their subscriptions
    • The user can confirm their email address using the confirmation email
  • User self-maintanence
    • A user can update their name and email address
      • A user receives a confirmation email to update their email address
    • A user can delete their account
      • All records of syndications to that user are deleted
      • All records of subscriptions by that user are deleted
      • All records of RSVPs by that user are deleted
    • A user can update their subscriptions
      • A user can subscribe from one or all subscriptions
      • A user can unsubscribe from one or all subscriptions
    • Add option for user to recover their UUID by submitting their email address
    • A user can select to receive emails, gcal invites, or neither, for their events
  • Event interaction
    • A user can RSVP yes/no to an event
    • A user can RSVP with a +1/2 to an event
    • A user can change an existing RSVP to an event
    • A user can see the number of other people RSVPd to an event
    • A user can see the information about the event
  • Authentication
    • Implement authentication for administration
    • Gate necessary endpoints with admin auth
  • User administration
    • An admin can see a list of all users and their confirmation statuses
    • An admin can admin-confirm a user
    • An admin can delete a user
    • Optionally email admin when new users sign up
      • Hook this up to preferences
  • Event administration
    • An admin can see all future events
    • An admin can see all past events
    • An admin can create an event
      • The event is attached to a specific mailing list
    • An admin can initiate invitations to an event
      • The event generates plaintext emails for everyone who has selected that option
      • The event generates gcal invites for everyone who has selected that option
    • An admin can delete an event
      • A placeholder page is set up indicating the event was deleted
      • All invited users are notified that the event was deleted
    • An admin can modify an event
      • All RSVPd users are notified that the event was modified
        • The admin may choose to omit this email (for, say, fixing a typo)
      • A notice is placed on the page indicitating that the event was modified
    • An admin can clone an existing past or future event
    • Suppress flashes indicating that events have been edited for unsyndicated events
  • Mailing list administration
    • The admin can initiate an email to all members of the global mailing list
    • The admin can initiate an email to all members of a subscription list
    • The admin can edit, add, or remove subscription lists
    • Add preferences for the admin
  • List Administration
    • Update the list admin page to show stats for list, plus an edit and delete button
    • Give each list its own independent administration page
You can’t perform that action at this time.