diff --git a/README.md b/README.md index d649e79..630f606 100644 --- a/README.md +++ b/README.md @@ -19,6 +19,10 @@ This is a simple rails app for distributing wedding information and managing the - Optional invisible [reCAPTCHA](https://www.google.com/recaptcha) integration to avoid spam - Sets headers to avoid being indexed by search engines +## What does it look like? + +![Screenshot of the home page](docs/homepage_big.jpg) + ## Development ### Initial Setup diff --git a/docs/_config.yml b/docs/_config.yml deleted file mode 100644 index 2f7efbe..0000000 --- a/docs/_config.yml +++ /dev/null @@ -1 +0,0 @@ -theme: jekyll-theme-minimal \ No newline at end of file diff --git a/docs/homepage_big.jpg b/docs/homepage_big.jpg new file mode 100644 index 0000000..51d943b Binary files /dev/null and b/docs/homepage_big.jpg differ diff --git a/docs/index.html b/docs/index.html new file mode 100644 index 0000000..3d2e8b7 --- /dev/null +++ b/docs/index.html @@ -0,0 +1,106 @@ + + + + + + + + + + + + + +
+
+
+
+

+ A Rails App for your Wedding +

+

+ Here's a simple rails app for distributing wedding information and managing the guest list. You're probably going to build your own anyway (like me!) but this may be a useful place to start. +

+

+ Get the Code
+

+
+ +
+

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 (with Bootstrap) and wording
  • +
  • Active Admin interface to manage the attendee list
  • +
  • Optional invisible Google reCAPTCHA integration to avoid spam
  • +
  • Sets headers to avoid being indexed by search engines
  • +
+ +

What does it look like?

+

For the demo, the wedding is South Pole themed. You can of course change that! Click to expand the image.

+

+ + + +

+ +

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 to expand the image. + And here is a higher-resolution PDF version. +

+

+ + + +

+

This diagram was produced in Realtime Board. + +

Reflections

+

+ Building this website was fun and an excellent wedding procrastination project. + Overall it was well-received, and a few people asked me to make it open source so they could use it for other weddings or wedding-like events. +

+

+ It's a fairly simple CRUD application, so rails provides an excellent foundation. + It's very much a “vanilla” rails application, with almost no fancy JavaScript. + An earlier version used some UJS for Plus One management but getting it to be robust and accessible proved to be quite a lot of work, so I opted for the simpler approach. + It does make good use of the rails asset pipeline to build a custom bootstrap theme. +

+

+ I mainly wanted full control over the RSVP fields, for example to ask for song suggestions, and also for guests to be able to manage their own RSVPs. + Quite a few people did this, especially for the song suggestions, many of which came in at the last minute! + One person registered with two different email addresses and had to be sorted out manually, but overall people seemed to make it through the flow OK. +

+

+ I put together some Docker compose infrastructure to manage the development environment, and in production I hosted the project on Heroku behind Cloudflare. + I used hobby dynos for $7/mo to make sure it didn't cause confusion by going to sleep, and also to get SSL. + I probably could have hosted it just on Heroku, but Cloudflare provided some nice analytics and a bit of added assurance on the security side (and some caching that works nicely with the rails asset pipeline, to boot). + It was interesting to see that within a few minutes of putting it up, we had lots of traffic from China and eastern Europe. + Google reCAPTCHAs were quickly added, especially because I used my personal Google Mail SMTP to send email. + Fortunately, we didn't have any spam trouble. +

+

+ We did eventually take the data offline to code the dietary requirements for the caterer and to make the seating plan. + Potentially we could have asked people to select dietary requirements from a dropdown to avoid this, but we didn't know in advance what categories our caterer would want; it took some manual back and forth, but we got there in the end. + There was some manual updating of these two sources of truth in the last couple of weeks, but it wasn't much, and by that point I didn't have time to add a seating planner to the website! +

+

+ I hope this at least provides some ideas for your wedding website, and maybe a good starting point. + I've also put some links to other rails wedding websites in the README on GitHub. +

+

+ Get Started
+

+
+
+
+ + diff --git a/docs/index.md b/docs/index.md deleted file mode 100644 index 317f6df..0000000 --- a/docs/index.md +++ /dev/null @@ -1,3 +0,0 @@ -# Wedding - -Testing out theme... diff --git a/docs/wedding_flow.jpg b/docs/wedding_flow.jpg new file mode 100644 index 0000000..e6f283d Binary files /dev/null and b/docs/wedding_flow.jpg differ diff --git a/docs/wedding_flow.pdf b/docs/wedding_flow.pdf new file mode 100644 index 0000000..af9bad8 Binary files /dev/null and b/docs/wedding_flow.pdf differ