- Project Description
- Reference Links
- User Stories
- Concept
- Application MVP
- Installation and Technology
- Future Development
- Team Members
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.
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
AS a wedding planner
I WANT to be able to use an online web application
SO THAT I can better plan an awesome wedding
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.
This section addresses the platforms's basic functionality and style/design utilized for the multiple features included thorughout the site.
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.
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.
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.
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
- 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 .
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.
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 theclient folder
andmain root folder
of this application. A screenshot of dependencies listed in each package.json file are listed included below. Please runnpm 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.
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
-
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
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
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.