Skip to content

Latest commit

 

History

99 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Fuse Automobiles / cse340-car-dealership

Project repository for the CSE 340 final project, a car dealership site made with Express and node.js.

Visit the Render site for the project here.

Database Schema

Database ERD exported from pgAdmin

User Roles

Role Number Description
user 1 Default registered customer. Can use the dashboard, submit and track service requests, and create reviews on vehicles. Can edit or delete their own reviews.
employee 2 Staff role. Includes everything a default user can do, plus moderation to review and edit service requests, review contact submissions, approve or reject reviews, and edit vehicle inventory data.
admin 3 Full access. Includes all employee capabilities plus account and permission management, the ability to add, delete, and edit vehicle categories as well as entire vehicles, and permission to view the database log.

Role names come from the roles table (user, employee, admin) and are stored on each row in users.role_id.

Test Account Credentials

Role Email Username
user user@example.com CarFanatic
employee employee@example.com WhatATeam
admin admin@example.com admin

For the passwords to these accounts, please refer to the Final Project Requirements.pdf located inside the course materials.

Known Limitations

  • Vehicle photos use external URLs located inside the database. There is currently no way for an employee or admin to add a new photo to this database through the site itself. If a third-party host drops an image, the UI will show a placeholder or broken image until URLs are updated.
  • New reviews require staff approval (is_visible) before they appear publicly, depending on moderation workflow.
  • Mobile view could use improvements with layout and styling. While the entire site should be functional on mobile, it may not be as clean looking as desktop.
  • Despite showing the "Delete user" button for each user on the Review Accounts page, it is impossible to delete your own account on the page. While this is intended functionality, the button ideally should be hidden on accounts that cannot be deleted in that manner.

Technology Stack

  • Node.js with Express.js as the backend framework
  • EJS or Liquid.js for rendering views
  • ESM (ECMAScript Modules), no CommonJS (require is not allowed)
  • PostgreSQL for the database
  • Deployed on Render with a connected PostgreSQL database

Project Checklist

Public Pages

  • Home page with featured vehicles
  • Browse vehicles by category (Trucks, Vans, Cars, SUVs)
  • Individual vehicle detail pages with images, specs, and price
  • Contact form (saves to database)

User Features (must be logged in)

  • Leave reviews on vehicles
  • Edit/delete own reviews
  • Submit service requests for their vehicle (oil change, inspection, etc.)
  • View history of service requests and their status

Employee Dashboard:

  • Edit vehicle details (price, description, availability)
  • Moderate/delete inappropriate reviews
  • View and manage service requests
  • Update service request status (Submitted, In Progress, Completed)
  • Add notes to service requests
  • View contact form submissions

Owner Dashboard (Full Admin):

  • Everything employees can do, plus:
  • Add, edit, and delete vehicle categories
  • Add, edit, and delete vehicles from inventory
  • Manage employee accounts (optional, can be hardcoded)
  • View all system activity and user data

Database Requirements:

Database Requirements:

  • Users table (with role field)
  • Vehicles table
  • Categories table (linked to vehicles)
  • Reviews table (linked to users and vehicles)
  • Service requests table (linked to users, with status tracking)
  • Contact messages table
  • Vehicle images table (one-to-many with vehicles)

About

Project repository for the CSE 340 final project, a car dealership site made with Express and node.js.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages