Skip to content

joshblaszczyk/Equipment-Checkout-System

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Equipment Checkout System (ECS)

A Windows Forms desktop application for managing equipment rentals within an organization. Employees can check out equipment, return items, and administrators can manage both the inventory and employee records.

Features

  • Employee Login — Authenticated login with PBKDF2-hashed passwords and masked input
  • Equipment Checkout — Cart-based system for renting multiple items at once
  • Equipment Returns — Return rented equipment by ID
  • Admin Panel — Add/remove employees and equipment (admin-only access)
  • Overdue Tracking — View all currently rented equipment (admin-only)
  • Dashboard — Central navigation hub with role-based access control

Tech Stack

  • Framework: .NET 8.0 Windows Forms
  • Language: C#
  • Database: SQLite via Entity Framework Core
  • ORM: Entity Framework Core 9.0
  • Security: PBKDF2 password hashing (SHA-256, 100k iterations)

Project Structure

├── Models/
│   ├── DatabaseContext.cs        # EF Core DbContext configuration
│   ├── Employee.cs               # Employee entity
│   └── Equipment.cs              # Equipment entity
├── Services/
│   ├── EmployeeService.cs        # Employee business logic (login, CRUD)
│   ├── EquipmentService.cs       # Equipment business logic (rent, return, CRUD)
│   └── PasswordHasher.cs         # PBKDF2 password hashing utility
├── LoginForm.cs                  # Login form with password masking
├── Dashboard.cs                  # Main navigation dashboard
├── Admin.cs                      # Admin management panel
├── Checkout.cs                   # Equipment checkout with cart
├── Return Equipment.cs           # Equipment return form
├── Overdue Equipment.cs          # Rented equipment tracking
├── Cart.cs                       # Shopping cart for batch checkout
└── NavigationHelper.cs           # Centralized form navigation

Architecture

The application follows a layered architecture:

  • Models — Entity classes mapped to SQLite tables via EF Core
  • Services — Business logic layer handling data operations, validation, and password security
  • Forms — Windows Forms UI layer with event-driven interactions
  • Utilities — Shared helpers (navigation, password hashing)

Getting Started

Prerequisites

Running the Application

dotnet restore
dotnet run

Default Login

The application requires a pre-seeded SQLite database with employee records. New employees can be added through the Admin panel — passwords are automatically hashed on creation.

Database Schema

Employees

Column Type Description
EmployeeId varchar(255) Primary key
Password varchar(255) PBKDF2-hashed password
Name varchar(255) Full name
Email varchar(255) Email address
Phone varchar(255) Phone number
Role varchar(255) Job role
IsAdmin BOOL Admin access flag
LastLogin DATETIME Last login timestamp

Equipment

Column Type Description
EquipmentId varchar(255) Primary key
EquipmentName varchar(255) Equipment name
RentingEmployee varchar(255) ID of employee renting (null if available)

Known Limitations

  • Email notifications for overdue equipment are planned but not yet implemented
  • No password reset flow — admin must create a new employee record
  • Session state is passed between forms rather than using a centralized store

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages