Skip to content

Coral3la/SimplyWed

Repository files navigation

SimplyWed 💍

A wedding-planning web application that helps couples organize everything for their big day in one place — guests, tasks, budget, and vendor bookings.

SimplyWed logo

Features

  • Authentication — sign up and sign in with JWT-based sessions and bcrypt-hashed passwords.
  • Dashboard — a personalized overview pulling together budget, guest count, and recent bookings.
  • Guest management — add, edit, and remove guests, grouped by category and side (Bride / Groom / Both), with RSVP and invited-count tracking.
  • Task list — a wedding to-do list with due dates and done/undone status.
  • Budget tracking — set a total budget and track spending against it from confirmed bookings, with the remaining balance calculated automatically.
  • Vendors & bookings — vendor services, bookings, and reviews modeled in the database schema.

Tech Stack

Layer Technology
Runtime Node.js
Server Express 5
Database Microsoft SQL Server (via mssql)
Auth jsonwebtoken + bcrypt
Config dotenv
Frontend Static HTML / CSS / vanilla JavaScript

All database access goes through stored procedures, called from a thin data-access layer in myRepository.js.

Project Structure

SimplyWed-project/
├── app.js                  # Express app entry point & user routes
├── db.js                   # SQL Server connection pool
├── middleware.js           # JWT authentication middleware
├── myRepository.js         # Data-access layer (calls stored procedures)
├── routes/
│   ├── authRoutes.js       # /api/auth  — signup & signin
│   ├── guestsRoutes.js     # /api/guests
│   ├── tasksRoutes.js      # /api/tasks
│   └── budgetRoutes.js     # /api/budget
├── public/                 # Frontend pages (served statically)
│   ├── home, signin, signup
│   ├── userDashboard
│   ├── guests, tasks, budget
│   └── *.css / *.js
├── photos/                 # Logo & images (served statically)
├── SimplyWedDB_schema.sql  # Database schema (tables)
├── simplywedSP.sql         # Stored procedures
└── SimplyWed_Data.sql      # Seed / sample data

Getting Started

Prerequisites

  • Node.js (with npm)
  • A running Microsoft SQL Server instance

1. Install dependencies

npm install

2. Set up the database

Run the SQL scripts against your SQL Server instance, in order:

  1. SimplyWedDB_schema.sql — creates the SimplyWed database and tables
  2. simplywedSP.sql — creates the stored procedures
  3. SimplyWed_Data.sql — (optional) loads sample data

3. Configure environment variables

Create a .env file in the project root:

DB_USER=your_sql_username
DB_PASSWORD=your_sql_password
DB_SERVER=localhost
DB_NAME=SimplyWed
JWT_SECRET=your_jwt_secret

The .env file is git-ignored and should never be committed.

4. Run the server

node app.js

The server starts on http://localhost:3001. Open it in your browser to reach the home page.

API Reference

All routes are prefixed with /api. Routes marked 🔒 require a valid JWT in the Authorization: Bearer <token> header.

Auth

Method Endpoint Description
POST /api/auth/signup Register a new user
POST /api/auth/signin Sign in and receive a JWT

Users 🔒

Method Endpoint Description
GET /api/users/userDashboard Dashboard data for the user
GET /api/users List all users
GET /api/user/:id Get a user by id
POST /api/user Create a user
PUT /api/user/:id Update a user
DELETE /api/user/:id Delete a user

Guests 🔒

Method Endpoint Description
GET /api/guests List the user's guests
GET /api/guests/categories List guest categories
GET /api/guests/:id Get a guest by id
POST /api/guests Add a guest
PUT /api/guests/:id Update a guest
DELETE /api/guests/:id Delete a guest

Tasks 🔒

Method Endpoint Description
GET /api/tasks List the user's tasks
GET /api/tasks/:id Get a task by id
POST /api/tasks Add a task
PUT /api/tasks/:id Update a task
DELETE /api/tasks/:id Delete a task

Budget 🔒

Method Endpoint Description
GET /api/budget Budget summary (total, spent, remaining, bookings)
PUT /api/budget Update the total budget

Database Schema

The data model centers on the Users table, with related tables for Guests (and GuestsCategory), Tasks, Vendors (with VendorsCategory and VendorServices), Bookings, and Reviews. See SimplyWedDB_schema.sql for the full definition.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors