• Stars
    star
    217
  • Rank 176,646 (Top 4 %)
  • Language
    JavaScript
  • License
    MIT License
  • Created over 10 years ago
  • Updated over 3 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

The open source website for Leslie Verploegen's and Eric Ferraiuolo's wedding

Open Marriage

The open source website for Leslie Verploegen's and Eric Ferraiuolo's wedding: http://leslie-eric.us/

Wedding planning is stressful and so is dealing with shitty wedding websites, I wanted to reduce our stress so I built the best looking wedding website and easiest RSVP system known to man. Since no other wedding website can compare to ours, I thought it would be nice to share what I built and open source our marriage [website].

It should be obvious that this project is for a very specific wedding, my wedding, and it probably won't work well for your wedding (unless you and your fiancΓ© are named Leslie and Eric). But hey, if you're building a website for your wedding you can use this project as the high bar of excellence :)

Clone and Deploy to Heroku

An easy way to start working with the project is to click the button below which will clone this project and deploy a working app to Heroku, all pre-configured and ready to roll! Of course you'll need to make some major altar-ations :)

Deploy

Built With

Even though I hand-crafted every line of code and push every pixel into its place, there's no way I could have created a wedding website this good without using some pay-for web services and free open source software.

Services

Software

Node.js Packages

Running

1. Install Node.js, Postgres, and Foreman.

This app uses Node.js as the runtime platform, Postgres for its database, and Foreman is a handy utility to configure and run the app locally.

2. Create a Postgres database.

This app uses a Postgres database to manage invitations and guests and backs the RSVP system. Postgres ships with a createdb executable that can be used from your shell like this:

$ createdb open-marriage

See the Postgres docs for more info on creating a new database.

3. Clone this Git repo and install dependencies.

Download this app's code by cloning this Git repo (fork it first if you plan to make changes).

$ git clone git://github.com/ericf/open-marriage.git

Now install of the app's npm and Bower dependencies (note the Bower dependencies will be installed automatically after the npm dependencies are installed.):

$ cd open-marriage
$ npm install

4. Set configuration and environment variables.

The easiest way to configure and run this app locally is to create a .env file to hold all the configuration and environment variables, and use Foreman to run the app (which will load up the .env file).

Required Variables

These configuration and environment variables need values specified in order for this app to function:

  • DATABASE_URL: The URI to the postgres database.
  • INVITATION_SECRET: Secret string used to encrypt/decrypt the invitation IDs.
  • NODE_ENV: Signals to app to run in development or production mode.
  • SESSION_SECRET: Secret string used to encrypt/decrypt the session cookie.
  • WEB: The command to run to start the app.

Optional Variables

Additionally, values for the following configuration variables can be set to enhance the app by adding email sending support via Mailgun and fancy fonts and icons via Typekit and Pictos:

  • MAILGUN_API_SERVER: Mailgun API endpoint.
  • MAILGUN_DOMAIN: Mailgun domain associated with your Mailgun account.
  • MAILGUN_API_KEY: Secret string used to sign Mailgun HTTP requests.
  • PICTOS: ID of Pictos server icon font set.
  • PORT: The port the web server should listen on, defaults to 5000.
  • TYPEKIT: ID of Typekit set.

Example .env File

The following is an example .env file which sets all the required variables in the VARIABLE=value format:

DATABASE_URL=postgres://localhost/open-marriage
INVITATION_SECRET=something very secret
NODE_ENV=development
SESSION_SECRET=something else secret
WEB=npm start

5. Migrate the database.

At this point you have the app, all its dependencies installed and a blank Postgres database; it's now time to migrate the database to add all the necessary tables. Foreman comes in handy here:

$ foreman run npm run migrate-up

6. Start the server!

Now you're all ready to start up the web server and start using the app! Again, Foreman is used to make this easy:

$ foreman start

License

Copyright (c) 2013 Eric Ferraiuolo ([email protected]).

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

More Repositories

1

express-handlebars

A Handlebars view engine for Express which doesn't suck.
JavaScript
2,315
star
2

express-slash

Express middleware for people who are anal about trailing slashes.
JavaScript
155
star
3

css-mediaquery

Parses and determines if a given CSS Media Query matches a set of values via JavaScript.
JavaScript
111
star
4

photosnear.me

Photos Near Me
JavaScript
99
star
5

urljs

[DEPRECATED] An API for working with URLs in JavaScript
JavaScript
75
star
6

timebox

This app helps TC39 stay on agenda during meetings.
JavaScript
20
star
7

grunt-css-selectors

Mutate CSS selectors.
JavaScript
19
star
8

grunt-broccoli-build

Runs a Broccoli build via Grunt.
JavaScript
13
star
9

square-thing-app

Super simple example app using YUI's Y.App component.
JavaScript
6
star
10

rework-mutate-selectors

Mutate CSS selectors via Rework.
JavaScript
6
star
11

button.css

The Holy Grail of CSS buttons
6
star
12

nowww

A simple Node.js server that responds to `www.` requests with a redirect to the same URL without the pointless `www.` subdomain.
JavaScript
6
star
13

formatjs-express-handlebars

Example Express app using FormatJS and Handlebars
JavaScript
5
star
14

amazon-silk-findings

A collection of findings that pertain to web developers who are supporting the interesting hybrid web browser on the Kindle Fire.
4
star
15

yui3-grids-annotations

A bookmarklet that annotates the grid structure of a web page using YUI 3 CSS Grids.
JavaScript
4
star
16

basecss

A Baseline CSS for starting new projects
2
star
17

require-overhead

Test the overhead of the ES6 Module bundle format vs Browserify's and Webpack's CommonJS format.
JavaScript
2
star
18

189oakstreet.com

2
star
19

ericf.github.com

My GitHub pages
1
star
20

express-extend

Extend Express apps in the most compatible way
JavaScript
1
star
21

enviroecon.org

Website for the Investing in a Sustainable Future Conference.
HTML
1
star
22

pjax-blacklist

YUI Pjax blacklist example
JavaScript
1
star
23

yapp-react

JavaScript
1
star