Skip to content

List sharing across users and topics for those planning an extensive wedding, with due dates and alerts

Notifications You must be signed in to change notification settings

DwightTheShark/WeddingPlanApp

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

37 Commits
 
 
 
 
 
 

Repository files navigation

Wedding Plan App

An application for a day that takes a team to tackle! A wedding day! This application allows users to create tasks, assign due dates, assign cateogories, and share them with other users.

Be sure to add that lovely star 😀 and fork it for your own copy wedding-planner-gif

How It's Made:

Tech used:

  • Bootstrap
  • Javascript
  • Express
  • MongoDB

This application was modelled with the MVC architecture. The API was built using Node.js, and Express as a framework. MongoDB and Mongoose ODM were used as well to roundout the backend. THe frontend was built with EJS as a templating language for the views, and styled using Bootstrap.

The only deviation this application has taken from the traditional MVC architecture was the separation of the router and controller, to allow for a more modular and object-oriented build.

Packages/Dependencies used:

bcrypt, connect-mongo, dotenv, ejs, express, express-flash, express-session, mongodb, mongoose, morgan, nodemon, passport, passport-local, validator

Initializing the project:

Clone this repository to a clean local directory.

Install all the dependencies or node packages used for development via Terminal.

npm install

Next step:

  • Create a .env file and add the following as key = value
    • PORT = 2121 (can be any port example: 3000)
    • DB_STRING = your database URI

Optimizations

Views:

  1. Error page routing will need to be added, along with more thorough testing of edge cases to prevent errors before they happen.
  2. Develop and implement application branding (logo, color scheme, typography, etc.)

Features:

  1. Build 'friend' system that will link user accounts to improve on current sharing functionality and allow for more customization
  2. Implement 'grouping' feature addition to current share feature, to allow for quick switch task assignments

Lessons Learned:

Preparation and Planning: There's no real substitute for proper planning and design. Working from start to end to design the UX and match that to functionality, you learn very quickly how every piece needs to fit together. You also learn just how important OOP is.

Modules and Middleware: Method-override is an incredible middleware that allows you to bridge the gap between the power of HTML and your API. The ability to perform all CRUD operations with a simple form is very, very powerful.

Backend: Mongoose is an incredibly powerful ODM that makes working with MongoDB even easier. The ability to aggregate data and cross-reference different documents is going to prove to be an invaluable skill going forward. Working with this data, and the desired end-result in terms of functionality, really cements just how important it is to think through your database structure and design.

Contributors:

The main contributors to this project are:

About

List sharing across users and topics for those planning an extensive wedding, with due dates and alerts

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published