Skip to main content
The repository is a single-page static website. All source files are at the root level — there is no separate src/ or dist/ directory.

Directory tree

wedding-website/
├── index.html              # The entire website (single page)
├── gulpfile.js             # Gulp build pipeline
├── package.json            # npm dependencies and metadata
├── manifest.json           # PWA web app manifest
├── browserconfig.xml       # Windows tile configuration
├── CNAME                   # Custom domain for GitHub Pages
├── .nojekyll               # Prevents Jekyll processing on GitHub Pages
├── .gitignore

├── sass/                   # SCSS source files
│   ├── styles.scss         # Main entry point
│   ├── ie.scss             # Internet Explorer overrides
│   ├── print.scss          # Print stylesheet
│   └── partials/
│       ├── _colors.scss
│       ├── _typography.scss
│       ├── _buttons.scss
│       └── _layout.scss

├── css/                    # Compiled and vendor CSS
│   ├── styles.min.css      # Compiled from sass/styles.scss (gulp output)
│   ├── queries.css         # Media query overrides
│   ├── bootstrap.min.css
│   ├── normalize.min.css
│   ├── flexslider.css
│   ├── jquery.fancybox.css
│   ├── ie.css
│   └── print.css

├── js/
│   ├── scripts.js          # Main JavaScript (source)
│   ├── scripts.min.js      # Minified build output (gulp output)
│   ├── jquery.mb.YTPlayer.min.js
│   ├── jquery.fancybox.pack.js
│   ├── jquery.flexslider-min.js
│   ├── jquery.counterup.min.js
│   └── vendor/
│       ├── jquery-1.11.2.min.js
│       ├── bootstrap.min.js
│       ├── modernizr-2.8.3-respond-1.4.2.min.js
│       └── ouical.js

├── img/
│   ├── hero.jpg            # Full-resolution hero background
│   ├── hero-min.jpg        # Compressed hero (used in production)
│   ├── logo.png            # Navbar logo
│   ├── logo-lg.png         # Hero logo
│   ├── IMG_2317.jpg        # Story section photo
│   ├── DSD_0214.jpg        # Story section photo
│   ├── iphone_instagram.jpg
│   ├── polygonal-bg.jpg
│   └── eng_pics/           # Engagement photo gallery

├── fonts/                  # Web fonts
├── psd/                    # Photoshop source files
└── .github/
    └── workflows/
        └── npm-gulp.yml    # CI workflow (all steps are commented out)
node_modules/ is excluded by .gitignore and is never committed. Run npm install after cloning to restore it locally.

Key files

index.html

The entire website is a single HTML file. It contains all sections as <section> elements with anchor IDs: #invitation, #intro, #events, #instagram, #eng-pics, #video-bg, #map, and #rsvp. The navigation bar links to these anchors, and smooth scrolling is handled in js/scripts.js.

sass/ — SCSS source files

The Gulp sass task compiles sass/styles.scss into css/styles.min.css. The main file imports all partials.
FilePurpose
sass/styles.scssMain entry point — imports all partials and defines base styles
sass/ie.scssIE-specific overrides
sass/print.scssPrint media styles
sass/partials/_colors.scssColor variables (backgrounds, accents, text)
sass/partials/_typography.scssFont families, sizes, and type scale variables
sass/partials/_buttons.scssButton component styles (.btn, .btn-fill, .btn-white, .btn-small, .btn-large)
sass/partials/_layout.scssLayout rules for sections, hero, navigation, and spacing

css/ — compiled and vendor CSS

css/styles.min.css is the Gulp build output and must be committed for GitHub Pages. All other files in css/ are pre-built vendor stylesheets.

js/scripts.js — main JavaScript

This is the primary source file. It initialises all interactive features when the DOM is ready. See the function reference below.

js/scripts.min.js — minified build output

Produced by the Gulp minify-js task from js/scripts.js. This is what index.html loads in production. Must be committed.

js/vendor/ — third-party libraries

FileLibrary
jquery-1.11.2.min.jsjQuery 1.11.2
bootstrap.min.jsBootstrap JS (modals, tooltips)
modernizr-2.8.3-respond-1.4.2.min.jsModernizr 2.8.3 + Respond.js 1.4.2 for IE8 support
ouical.jsCalendar event generator (Google, iCal, Outlook, Yahoo)

manifest.json — PWA web manifest

Defines app name, icons, theme color (#ffffff), and display mode (standalone) for Progressive Web App installation on mobile devices.

browserconfig.xml — Windows tile config

Configures the Windows Start Menu tile when users pin the site. References mstile-150x150.png and sets a tile color of #da532c.

CNAME — custom domain

Contains the custom domain for GitHub Pages hosting. The file in this repository contains wedding.rampatra.com. Replace this with your own domain when deploying.

.nojekyll — GitHub Pages bypass

An empty file that instructs GitHub Pages to skip Jekyll processing. Required to prevent GitHub from ignoring files with _ prefixes (such as SCSS partials).

JavaScript function reference

All functions are defined in js/scripts.js.
Function / handlerDescription
initMap()Google Maps callback. Renders a map centered on {lat: 22.5932759, lng: 88.27027720000001} with a marker at the venue. Called by the Google Maps API script tag in index.html.
initBBSRMap()Alternative map initialiser for a second venue location ({lat: 20.305826, lng: 85.85480189999998}). Swap the callback parameter in the Maps API URL to use this.
alert_markup(alert_type, msg)Returns a Bootstrap alert HTML string. Used by the RSVP form to show info, success, and error messages in #alert-wrapper.
RSVP form handler (#rsvp-form submit)Validates the invite code using MD5, then POSTs form data to the Google Apps Script URL via $.post(). Shows a success modal or error alert based on the response.
createCalendar(options)Called via ouical.js. Generates “Add to Calendar” buttons for Google Calendar, Apple iCal, Outlook, and Yahoo Calendar. Output is injected into #add-to-cal.
Waypoints (.wp1.wp9)Triggers animate.css entrance animations when elements scroll into view at 75% of the viewport.

createCalendar() usage

var myCalendar = createCalendar({
    options: {
        class: '',
        id: ''
    },
    data: {
        title: "Ram and Antara's Wedding",
        start: new Date('Nov 27, 2017 10:00'),
        end: new Date('Nov 29, 2017 00:00'),
        address: 'ITC Fortune Park Hotel, Kolkata',
        description: "We can't wait to see you on our big day."
    }
});

$('#add-to-cal').html(myCalendar);

RSVP invite code validation

The form handler checks the MD5 hash of the submitted invite code against two stored hashes:
if (MD5($('#invite_code').val()) !== 'b0e53b10c1f55ede516b240036b88f40'
    && MD5($('#invite_code').val()) !== '2ac7f43695eb0479d5846bb38eec59cc') {
    $('#alert-wrapper').html(alert_markup('danger', '<strong>Sorry!</strong> Your invite code is incorrect.'));
}
To change the invite code, generate an MD5 hash of your chosen code and replace the hash strings. See the FAQ for details.

Build docs developers (and LLMs) love