Skip to main content

Documentation Index

Fetch the complete documentation index at: https://mintlify.com/JReyna217/PharmaVault/llms.txt

Use this file to discover all available pages before exploring further.

PharmaVault is a web-based personal medication inventory management system built to solve a common household problem: medications that expire unnoticed, duplicate purchases from forgotten stock, and no single place to view the health of your pharmaceutical supplies. With PharmaVault, users can maintain a master drug catalog, track individual inventory items tied to their account, and get at-a-glance analytics on everything from total stock counts to medicines approaching expiration — all through a responsive Blazor dashboard secured by cookie-based authentication.

Key Features

Authentication & Authorization

Secure cookie-based sessions powered by ASP.NET Core Cookie Authentication. Sessions expire after one hour, and all routes are protected against unauthenticated access.

Inventory Management

Full CRUD operations for personal medication stock. Each inventory entry links to a catalog medicine and records quantity, purchase date, expiration date, and prescription notes.

Medicine Catalog

A centralized master catalog of drug names, pharmaceutical forms, and dosages. Catalog entries are reused across all user inventories, keeping data consistent and reducing duplication.

Analytics Dashboard

Interactive charts powered by ApexCharts display inventory health at a glance — Total items, Good Condition, Expiring Soon, and Expired counts rendered in real time.

Real-time Search

Client-side inventory filtering using LINQ delivers zero-latency search results as you type, with no round-trips to the server required.

Expiration Alerts

Visual indicators flag medicines that are expiring soon or already past their expiration date, so nothing slips through unnoticed.

Tech Stack

LayerTechnologyPurpose
PresentationASP.NET Core Blazor (Interactive Server)Rich interactive UI in C#, shared models between client and server
DatabasePostgreSQLReliable relational storage with strong date/time support
Data AccessADO.NET with Npgsql / custom extensionsRaw SQL with lightweight mapping for maximum query performance
UI FrameworkBootstrap 5Responsive, mobile-first layout
ChartsApexChartsInteractive, real-time analytics dashboard

Architecture

PharmaVault follows a Clean Architecture / N-Tier design with a strict separation of concerns across three layers:
  • PharmaVault.Core — Domain models, DTOs, and interfaces. Contains all business logic with zero external dependencies.
  • PharmaVault.Data — Infrastructure layer that implements the Repository Pattern (DAOs) and communicates directly with PostgreSQL via Npgsql.
  • PharmaVault.Web — Presentation layer built with Blazor, responsible for the UI, component state, authentication middleware, and request routing.
The Core layer has no knowledge of the database or the web framework. This makes it straightforward to swap out the data layer or the presentation layer independently.

Roadmap

The following enhancements are planned for future releases:
  • Consumption logging — Subtract stock units when a medication is taken, building a usage history over time.
  • Excel / PDF export — Generate downloadable inventory reports for sharing with healthcare providers or for personal record-keeping.
  • Email notifications — Automated alerts sent to users when medicines in their inventory are approaching their expiration date.

Next Steps

Quickstart

Get PharmaVault running locally in 5 minutes — database setup, secrets configuration, and your first run.

Deployment

Deploy to Ubuntu with Docker and Nginx for a production-ready setup with SSL and reverse proxying.

Build docs developers (and LLMs) love