Skip to content

MAJOR PROJECT #2- Summer weddings are in full swing!! To help make wedding planning easier, we would like to develop a wedding planner web application that will help any wedding planner easily plan and organize all the details surrounding the big day.

License

wedding-planner-app/wedding-planner

Repository files navigation

Wedding Planner

npm npm npm npm npm npm npm npm npm npm npm npm npm

wedding planner logo


Table of Contents


Project Description

Summer weddings are in full swing!! To help make wedding planning easier, we would like to develop a wedding planner web application that will help any wedding planner easily plan and organize all the details surrounding the big day. This application will allow users to create a profile under which they can create one or more wedding event plans.


Reference Links

Link to Wedding Planner Applications deployed on Heroku - Wedding Planner Application Live Link

Link to GitHub Repo used for application development - Wedding Planner Application GitHub Repo

Link to Project Board used for application development - Project Board


User Stories

AS a wedding planner
I WANT to be able to use an online web application
SO THAT I can better plan an awesome wedding

Concept

This platform is a full stack web application that will allow a wedding planner to plan and manage a client’s wedding. Weddings are significant events in people's lives and as such, couples are often willing to spend considerable amount of money to ensure that their weddings are well-organized. The Wedding Planner application allows the user to keep all guests, invitations, venue information, and more in one place.

Actions Diagram

Design

This section addresses the platforms's basic functionality and style/design utilized for the multiple features included thorughout the site.

Architecture

This project is based on MVC design (model-view-control), which facilitates a better organization pattern for the code used to develop this web application. The MVC folder pattern helps separate the application's care back-end business logic, front-end UI design, and user interaction. The diagram included below outlines the architecture of this web application.

ER Diagram

The entity relationship (ER) diagram below provides a visual representation of how the data is saved inside the application's back-end database. This diagram also demonstrates the relationship between each database table.

APIs Docs

In order to access the API data, we recommend using Postman, which is a REST API GUI client that you can download onto your local environment from the Postman website. Please reference this APIs Documentation for details on the first steps users need to following in order to this applications APIs.

When referencing the provided API documentation, consider accessing Postman by clicking on the a Run in Postman button as demonstrated in the photo below. If you have your API endpoints integrated with Postman, you can export your Postman collections as a widget to embed in an HTML page.

Whiteboards

Click to expand!

Image 1

Image 2

Wireframes

Click to expand!

Homepage webpage wireframe

Login webpage wireframe

User profile wireframe

Existing events wireframe

Create event reservation wireframe

Venues wireframe

Guest list webpage wireframe

FUTURE DEVELOPMENT - Invitation wireframe

FUTURE DEVELOPMENT - Media wireframe


Application MVP

  • The user can register and login to the platform using Auth0.
  • The user can see his/her profile.
  • The user can list, create, edit, and delete wedding events.
  • The user can search venues and assign to wedding event.
  • The user can list, create, edit, delete and search by (name, email) guests.
  • The user can send invitations.
  • The user can logout .

Installation and Technology

Reference the subsections below for installation instructions and a list of technologies used for the development of this wedding planner application.

FYI - Environment Variables: Please note that various environment variables are used in both client folder and root directory of this application, so to test in your local environment, the user will need to indivually generate the following environment variables.

Installation Instructions

In order to successfully develop and launch this assignment, the following items must be installed and/or accessible from your working environment (i.e. laptop, computer, etc.).

  • Node.js - Make sure Node.js is installed in your machine. If Node.js is not installed on your machine, click here to download the application.
  • Node Modules - This project used various node modules, which are listed in the package.json files listed in both the client folder and main root folder of this application. A screenshot of dependencies listed in each package.json file are listed included below. Please run npm install in your terminal to install all required node modules.

Reference the section below for a list (and brief description) of core node modules and technologies used to develop this application.

Package.json file in Root Directory

Click to expand!

Package.json file in Root Directory

Package.json in Client Folder

Click to expand!

Package.json in Client Folder

Core Project Technologies

Here is a list of all the core technologies / core dependencies used to develop this application.

  • Model-View-Controller (**MVC**) framework as an architectural pattern

    Click to expand!

    MVC folder pattern for this project

    /=
  • Node.js - An asynchronous event-driven JavaScript runtime

  • React.js - A JavaScript library for building user interfaces

  • MySQL database with a Sequelize ORM

  • Postgres in production

  • Deploy web app using Heroku

  • User authentication and secure API with Auth0

Core Node Dependencies

The dependencies listed below are all the NPM packages used throughout this project. Each package can be accessed on the npmjs.com website. The descriptions for each NPM package listed below was gathered from the npmjs.com website.

  • babel-eslint - Allows the user to lint ALL valid Babel code with the fantastic ESLint
  • dotenv - A zero-dependency module that loads environment variables from a .env file into process.env
  • express - Provides small, robust tooling for HTTP servers for solutions for single page applications, web sites, hybrids, or public HTTP APIs
  • express-jwt - Provides Express middleware for validating JWTs (JSON Web Tokens) through the jsonwebtoken module
  • if-env - Helps simplify npm scripts
  • jwks-rsa - A library to retrieve RSA signing keys from a JWKS (JSON Web Key Set) endpoint
  • jwt-decode - A small browser library that helps decoding JWTs token which are Base64Url encoded
  • morgan:"HTTP request logger middleware for node.js"
  • nodemailer - Send e-mails from Node.js
  • pg - Non-blocking PostgreSQL client for Node.js
  • react-router-dom - DOM bindings for React Router
  • sequelize - A promise-based Node.js ORM for Postgres, MySQL, MariaDB, SQLite and Microsoft SQL Server

Future Development

For future development, we would like to incorporate the following feature enhancements into our web application:

  • Enhance the overall application's UI.
  • Add actual wedding data, such as picture and video.
  • Generate guests friendly interface with memories of the event.
  • Allow capability to order memorabilia items based on data of the event.
  • Allow wedding planner to import CSV data files.
  • Develop corresponding mobile app.

Team Members


Table of Contents

About

MAJOR PROJECT #2- Summer weddings are in full swing!! To help make wedding planning easier, we would like to develop a wedding planner web application that will help any wedding planner easily plan and organize all the details surrounding the big day.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published