All Projects → jdleesmiller → wedding

jdleesmiller / wedding

Licence: BSD-3-Clause license
A simple rails app for distributing wedding information and managing the guest list.

Programming Languages

ruby
36898 projects - #4 most used programming language
HTML
75241 projects
SCSS
7915 projects
javascript
184084 projects - #8 most used programming language

Projects that are alternatives of or similar to wedding

Open Build Service
Build and distribute Linux packages from sources in an automatic, consistent and reproducible way #obs
Stars: ✭ 599 (+1771.88%)
Mutual labels:  rails-application
Railschat
Real-time Rails-based Webchat for Instant Messaging (实时Web聊天室)
Stars: ✭ 81 (+153.13%)
Mutual labels:  rails-application
Rspec Rails Examples
RSpec cheatsheet & Rails app: Learn how to expertly test Rails apps from a model codebase
Stars: ✭ 2,089 (+6428.13%)
Mutual labels:  rails-application
Real World Rails
Real World Rails applications and their open source codebases for developers to learn from
Stars: ✭ 982 (+2968.75%)
Mutual labels:  rails-application
Grape Doorkeeper
Get to API building quickly
Stars: ✭ 77 (+140.63%)
Mutual labels:  rails-application
Websiteone
A website for Agile Ventures
Stars: ✭ 132 (+312.5%)
Mutual labels:  rails-application
Tomatoes
Pomodoro Technique® online time tracker
Stars: ✭ 344 (+975%)
Mutual labels:  rails-application
Wedding-Invitation
Animated website for my Elder Sister's wedding Invitation (also contains timer & background music) | Save the Date: Nov 29, 2020
Stars: ✭ 118 (+268.75%)
Mutual labels:  wedding
Vglist
A video game library tracking web app built in Rails and powered by Wikidata.
Stars: ✭ 78 (+143.75%)
Mutual labels:  rails-application
Stack rescue
A gem for Rails to automatically search Google for exceptions raised in your Rails applications
Stars: ✭ 168 (+425%)
Mutual labels:  rails-application
Cbrain
CBRAIN is a flexible Ruby on Rails framework for accessing and processing of large data on high-performance computing infrastructures.
Stars: ✭ 51 (+59.38%)
Mutual labels:  rails-application
Clipboard Rails
clipboard.js javascript library integration for your Rails 4 and Rails 5 applications
Stars: ✭ 72 (+125%)
Mutual labels:  rails-application
Spotlight
Spotlight enables librarians, curators, and others who are responsible for digital collections to create attractive, feature-rich websites that highlight these collections.
Stars: ✭ 137 (+328.13%)
Mutual labels:  rails-application
Osem
Open Source Event Manager. An event management tool tailored to Free and Open Source Software conferences.
Stars: ✭ 649 (+1928.13%)
Mutual labels:  rails-application
Ekylibre
Farm management Information System - Connecting farms to the world
Stars: ✭ 246 (+668.75%)
Mutual labels:  rails-application
Annict
The platform for anime addicts built with Rails and Stimulus.js.
Stars: ✭ 542 (+1593.75%)
Mutual labels:  rails-application
Openstreetmap Website
The Rails application that powers OpenStreetMap
Stars: ✭ 1,259 (+3834.38%)
Mutual labels:  rails-application
hyperdome
the safest place to reach out
Stars: ✭ 26 (-18.75%)
Mutual labels:  guest
Transactions app
This project is an application for calculating money transactions. Users can create, edit, and delete transactions and group them.
Stars: ✭ 21 (-34.37%)
Mutual labels:  rails-application
Expertiza
Expertiza is a web application through which students can submit and peer-review learning objects (articles, code, web sites, etc). The Expertiza project is supported by the National Science Foundation.
Stars: ✭ 160 (+400%)
Mutual labels:  rails-application

Rails App for Weddings and Similar Events

CI status

So you're getting married 🎉

This is a simple rails app for distributing wedding information and managing the guest list. You will probably decide to build your own (like me…) but if you like you can start with this one. It's been through at least one wedding successfully!

Is it any good?

THIS WEBSITE IS AWESOME! Best wedding invite ever. — One of our guests

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

Contents

Table of Contents generated with DocToc

What does it look like?

Screenshot of the home page

How does it work?

Here's a map of all the flows through the app, from the home page to the RSVP flow and also some of the separate admin interface. Click here to expand the image. And here is a higher resolution PDF version.

Flow chart showing the application states.

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: [email protected]
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. Once you are logged into the admin, you can go to Admin Users, find the default admin user, and change its email address, if you like (you will need to re-enter the password).

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 by changing the code, but here are some useful places to start:

Content

Styling

  • app/assets/images — the images

    • jumbo.jpg is the title image at the top of the home page
    • rsvp.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;

Environment Variables

  • CANONICAL_URL — your website's domain, e.g. www.mywedding.com
  • CONTACT_EMAIL — the email address that users can use to contact you, e.g. [email protected]
  • FROM_EMAIL — the email address that confirmations emails will come from

Sending Email

There are environment variables that correspond to each smtp_settings key in the ActionMailer config.

  • SMTP_ADDRESS — name of the SMTP server
  • SMTP_PORT — port the SMTP server listens on (default 587)
  • SMTP_DOMAIN — HELO domain, if required
  • SMTP_USER_NAME — user name for SMTP server
  • SMTP_PASSWORD — password for SMTP server
  • SMTP_AUTHENTICATION — authentication type (default plain)
  • SMTP_ENABLE_STARTTLS_AUTO — automatically detect if STARTTLS is enabled and use it if so (default true)

ReCAPTCHA

If set, the website will use an invisible reCAPTCHA to prevent spam. You can get these from Google reCAPTCHA's admin page. Be sure to choose "Invisible" for the type.

  • RECAPTCHA_SITE_KEY — the data-sitekey for the Client side integration
  • RECAPTCHA_SECRET_KEY — the secret for the Server side integration

Deployment

Heroku makes it easy to deploy rails apps like this one. The free postgres database is enough, unless you have > 10k guests! You can set up a Heroku app and connect it to your GitHub repo.

You must set the canonical host and email addresses in order to be able to send email:

heroku config:set \
  CANONICAL_HOST=www.mywedding.com \
  CONTACT_EMAIL='Example Name <[email protected]>' \
  FROM_EMAIL='Example Name <[email protected]>'

You will also need to set up SMTP by setting the config variables above. One way to do this is to use your Google Mail account's SMTP server.

Then you can get up and running with:

heroku run rails db:migrate db:seed

Watch the output of db:seed for the default admin credentials, like in development. The admin console will be available on /admin.

If you like, you can also turn on reCAPTCHA, as above.

heroku config:set \
  RECAPTCHA_SITE_KEY=... \
  RECAPTCHA_SECRET_KEY=...

License

BSD License

Related Projects

I'm not the first rails developer to build a wedding website:

Credits

Thanks to @Hopet for help with design and copy.

Design

The default design is based on https://naomi-demo.squarespace.com/ .

Photos

The photos for the demo are from Pexels:

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].