Skip to content

TristinPorter/CarDealership

Repository files navigation

Doug’s Trucks – Full‑Stack Car Dealership Website

Doug’s Trucks is a personal, end-to-end web application I built as a learning project to deepen my experience with modern full-stack web development. This repository is not intended for production use—it’s a hands-on playground for exploring concepts, frameworks, and tools surrounding ASP.NET, PostgreSQL, authentication, REST APIs, and rich UI development.

Table of Contents


Project Goals

  • Gain experience integrating a relational database (PostgreSQL) with an ASP.NET web backend.
  • Implement basic authentication/authorization flows.
  • Build REST APIs for CRUD operations.
  • Experiment with front‑end development using HTML, Less (CSS preprocessor), JavaScript, and C# (via Razor/Blazor).
  • Practice project structuring, deployment basics, and version control with GitHub.

Features

  • Inventory listing of trucks/cars with create, read, update, and delete (CRUD) operations.
  • User authentication (register, login, logout).
  • Simple account management (change password, user roles, etc.).
  • Dealer “dashboard” to manage listings.
  • Clean, mobile‑responsive UI.
  • RESTful API endpoints (private and public).
  • Basic input validation and error handling.

Tech Stack

The project is a blend of several technologies, each chosen to maximize learning. Here’s a breakdown of what I used and why:

Back End

ASP.NET (C#)

  • Purpose: Main server-side framework for routing, controller logic, API endpoints, and Razor views.
  • Learning Points: MVC structure, model binding, middleware (authentication, authorization), dependency injection, deployment basics (IIS, Kestrel).

PostgreSQL

  • Purpose: Open-source SQL database for persistent storage (inventory, users, etc.).
  • Learning Points: Schema design, table relationships, querying with SQL and EF Core, connection pooling.

Entity Framework Core

  • Purpose: Object-relational mapping (ORM) for working with PostgreSQL in C# using LINQ.
  • Learning Points: Code-first migrations, DbContext configuration, lazy vs. eager loading.

Front End

HTML

  • Purpose: Page structure, semantic markup.
  • Learning Points: Good HTML structure for accessibility and maintainability.

Less (CSS Preprocessor)

  • Purpose: Write maintainable, nested stylesheets with variables/functions.
  • Learning Points: Modular CSS development, compiling Less to CSS.

JavaScript

  • Purpose: Add client-side interactivity (e.g., dynamic form validation, UI enhancements).
  • Learning Points: Vanilla JS basics, manipulating DOM, fetching API data with fetch.

C# in Razor/Blazor

  • Purpose: Mix server-side logic with HTML markup, render dynamic content.
  • Learning Points: Data binding, componentization, conditional rendering.

Dev Tools & Utilities

  • Visual Studio: IDEs used for coding, debugging, refactoring.
  • Swagger: Test API endpoints quickly during development.
  • pgAdmin: Tools for managing the PostgreSQL database.

Installation

Note: This project is for educational & demo purposes only and may require additional setup or config tweaks one of them being you will have to create your own db with the exact same schema as mine and also fill it with data.

Prerequisites:

Learning Reflections

This project pushed me to:

  • Debug common integration issues between C#, Entity Framework, and PostgreSQL.
  • Build a basic authentication system from scratch and see how managed identity frameworks work.
  • Go beyond scaffolding by customizing controllers, APIs, and client-side behaviors.
  • Manage application state both on the server (C#) and client (JavaScript).

Screenshots

Home Page Login Page Inventory Page Dashboard Page

Disclaimer

This repo is NOT intended for use by real dealerships or in production environments! It was created for experimentation, learning, and self-improvement. Please read and review all code before adapting any parts for your own use. No warranties, no guarantees!


Happy coding!
@TristinPorter

About

Doug’s Trucks is a full‑stack car dealership website I built to improve my skills with PostgreSQL, ASP.NET, APIs, and authentication.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors