Skip to content

j-cavender/CSC437

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

29 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

CSC437 — Artisan Pottery Shop

A full-stack e-commerce web application for browsing and purchasing artisan pottery. Built with Lit web components on the frontend, Express + MongoDB on the backend, and TypeScript throughout.

Project Structure

This is an npm workspace monorepo with three packages:

packages/
├── app/      # Frontend — Lit web components + Vite
├── server/   # Backend — Express API + MongoDB
└── proto/    # Static HTML/CSS prototype

Tech Stack

  • Frontend: TypeScript, Lit, Vite, @calpoly/mustang (routing & state)
  • Backend: Node.js, Express, TypeScript, MongoDB (Mongoose), JWT, bcryptjs
  • Tooling: npm workspaces, nodemon, esbuild-node-tsc

Features

  • User registration and login (JWT authentication)
  • Browse pottery product catalog
  • View individual item details
  • Shopping cart management
  • User profiles

Setup

Prerequisites

  • Node.js
  • A running MongoDB instance
  • A .env file in packages/server/ with:
TOKEN_SECRET=your_jwt_secret
PORT=3000
MONGO_CONNECTION=your_mongodb_connection_string

Install dependencies

npm install

Build & Run

# 1. Build the frontend
cd packages/app
npm run build

# 2. Start the server (serves the built frontend)
cd ../server
npm run start:app

Account & Authentication

Create an account on the signup page before accessing protected routes. All user data (cart, profile) is tied to your account.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors