Rails App for Weddings and Events
This is a simple rails app for managing the guest list for a wedding (or similar event). It's intended to be easy to customize.
Features
- Guests can RSVP, including dietary requirements and plus ones
- Guests can manage their own RSVPs using a secret link in an email (no user name / password needed)
- Responsive design on home page and RSVP pages
- Customizable styling and wording
- Active Admin interface to manage the attendee list
- Optional invisible reCAPTCHA integration to avoid spam
- Sets headers to avoid being indexed by search engines
Development
Initial Setup
The simplest way to get started is to use Docker.
git clone https://github.com/jdleesmiller/wedding.git
cd wedding
cp development.env.template development.env
docker-compose build
docker-compose up -d db
docker-compose run --rm web bash -lc 'bin/rails db:create db:migrate'
docker-compose run --rm web bash -lc 'bin/rails db:seed'
Watch the output of db:seed
for the default admin credentials:
Admin user email: admin@example.com
Admin user password: (random string)
Running the App
docker-compose up -d
docker-compose logs -f
By default, the app will run on http://localhost:3000
The admin interface is on http://localhost:3000/admin
To access the database:
docker-compose exec db psql wedding_development postgres
To get a shell:
docker-compose exec web bash
Once you have a shell in the container, you can run rails commands as normal.
bin/rails console
bin/rails test
Customization
You can of course customize everything, but here are some places to start:
Content
-
config/locales/en.yml
— key stringswedding_name: "Jack & Jill's Wedding" wedding_couple_names: 'Jack & Jill' wedding_date: 'Saturday, 1 January 2000' wedding_location: 'South Pole' photo_credits: 'Photo Credits: Pexels'
-
app/views/application
— the address on the home page and the addresses in the emails -
app/views/welcome
— the home page content -
public/wedding.ics
— the calendar invite- this is just a sample file; you probably want to generate one
Styling
-
app/assets/images
— the imagesjumbo.jpg
is the title image at the top of the home pagersvp.jpg
is the title image at the top of the RSVP pages
-
app/assets/stylesheets/application.scss
— theme colors and bootstrap customization$font-family-sans-serif: Montserrat, Helvetica, Arial, sans-serif; $font-family-serif: Arvo, Georgia, "Times New Roman", Times, serif; $font-family-base: $font-family-serif; $headings-font-family: $font-family-sans-serif; $body-color: rgba(28, 13, 10, 0.7); $headings-color: rgba(28, 13, 10, 0.7); $theme-colors: ( "primary": #ff745c ); $enable-rounded: false;