Skip to content

Latest commit

 

History

1 Commit

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

GearTrack

GearTrack is a small campus equipment checkout system and the shared system under test for SDEV 3500: Performance and Testing. It is deliberately realistic, locally runnable, and imperfect: the happy paths work, while a bounded set of quality issues supports exploratory testing.

Quick start

Prerequisite: the .NET 10 SDK. Docker, Node.js, a database server, accounts, and credentials are not required.

From the GearTrack directory, run exactly:

dotnet run --project src/GearTrack.Web

Then open http://localhost:5080.

On first start, the command restores packages, builds the app, creates src/GearTrack.Web/App_Data/geartrack.db, and seeds it with equipment, reservations, and activity. Later starts preserve local changes.

To stop the app, press Ctrl+C in the terminal.

What to explore

  • Dashboard counts and recent activity
  • Equipment search, category filters, status filters, and detail pages
  • Availability and reservation schedules
  • Creating reservations
  • Checking out reserved equipment and returning checked-out equipment
  • Reservation and equipment history
  • JSON API endpoints under /api

Seed records use fictional names and example.edu addresses. They contain no institutional or production data.

Useful API calls

With the app running:

curl http://localhost:5080/api/dashboard
curl "http://localhost:5080/api/equipment?category=Cameras"
curl http://localhost:5080/api/equipment/1
curl http://localhost:5080/api/equipment/1/history
curl http://localhost:5080/api/reservations

Create a reservation (use an equipment ID returned by the equipment endpoint):

curl -i -X POST http://localhost:5080/api/reservations \
  -H "Content-Type: application/json" \
  -d '{"equipmentItemId":1,"requesterName":"Demo Student","requesterEmail":"demo@example.edu","purpose":"Friday exploration","startDate":"2026-09-05","endDate":"2026-09-06"}'

Check out or return a reservation by ID:

curl -i -X POST http://localhost:5080/api/reservations/3/checkout
curl -i -X POST http://localhost:5080/api/reservations/1/return

Build and test

dotnet restore GearTrack.slnx
dotnet build GearTrack.slnx --no-restore
dotnet test GearTrack.slnx --no-build

The small passing suite checks core lifecycle behavior and verifies that the SQLite database initializer produces a useful dataset. It intentionally does not test away the exploratory-testing issues.

Reset local data

Stop the app, delete src/GearTrack.Web/App_Data/geartrack.db, and run the quick-start command again. The database will be recreated and reseeded automatically.

Projects and documentation

  • src/GearTrack.Core — entities, contracts, models, and workflow service
  • src/GearTrack.Infrastructure — EF Core, SQLite repository, schema, and seed data
  • src/GearTrack.Web — Blazor Web App, API endpoints, host, and local styling
  • tests/GearTrack.Core.Tests — focused service and database-initialization checks
  • docs/architecture-overview.md — design and extension points
  • docs/future-enhancements.md — credible semester roadmap

Current scope

This first version intentionally has no authentication, authorization, notifications, attachments, or administrative editing. SQLite is the only configured provider; PostgreSQL is an explicit future extension. No Docker configuration is required or included in the default path.

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages