npm package: @suman-jangili/locker-frontend
Description: A self-hosted, encrypted personal data vault with immutable consent receipts for documents.
Author: Suman Jangili
Latest version: 0.1.0

📄 `@suman-jangili/locker‑frontend`

## Regulatory-First Design: Self-Hosted Encrypted Data Vault with Consent Receipts.
**Building privacy‑by‑law systems from day 1. Start with the law, end with trust.**
> In today's data-protection landscape, regulations like GDPR, CCPA, HIPAA, and DPDPA should form the foundation of product architecture.

> **A self‑hosted digital vault** where users can store, tag, and retrieve personal documents (IDs, health records, contracts). All privacy‑by‑design controls—data‑minimisation, purpose‑limitation, right‑to‑erasure—are baked into the UI and API.

> Built with React SPA with Vite OIDC authentication (JWT validation) File uploader, consent modals, delete UI.

![License](https://img.shields.io/badge/license-MIT-blue.svg)

---

### Table of Contents

- [Features](#features)
- [Installation](#installation)
- [Running Locally (development)](#running-locally-development)
- [Docker Production Build](#docker-production-build)
- [Configuration](#configuration)
- [Contributing](#contributing)
- [License](#license)

---

### Features

- End‑to‑end encrypted storage of personal documents.  
- Immutable consent receipts for every uploaded file.  
- Modern UI built with **React 19**, **MUI 7**, and **Emotion** styling.  
- Fast development experience via **Vite**.  

---

### Installation
```bash
# Clone the repo
git clone https://github.com/sumanjangili/regulatory-first.git
cd regulatory-first/locker-frontend

# Install dependencies
npm ci        # deterministic install using package‑lock.json
# or, if you don’t have a lockfile:
# npm install --omit=dev
```

---

### Running Locally (development)
```bash
npm run dev      # starts Vite dev server at http://localhost:5173
```
Open the URL in your browser. The app will hot‑reload on source changes.

---

### Docker Production Build
A multi‑stage Dockerfile is provided to produce a minimal runtime image.
```bash
# Builder stage – installs deps, compiles the Vite app
FROM node:20-alpine AS builder
...
# Runtime stage – tiny static server (serve)
FROM node:20-alpine AS runner
...
```
#### Build & Run
```bash
# Build the Docker image
docker build -t locker-frontend:latest .

# Run the container (exposes port 80)
docker run -p 80:80 -e VITE_BACKEND_URL=http://regulatory_api:3000 locker-frontend:latest
```

---

### Configuration
- **Backend URL** – Set VITE_BACKEND_URL environment variable (defaults to http://regulatory_api:3000).
- **Other Vite env vars** – Follow the standard Vite naming convention (VITE_...).

---

### Contributing
1. Fork the repository.
2. Create a feature branch (`git checkout -b feat/your-feature`).
3. Make your changes, run lint (`npm run lint`) and ensure tests pass.
4. Write or update tests if applicable.
5. Submit a pull request.
Please read the `CODE_OF_CONDUCT` and `CONTRIBUTING` guidelines before contributing.

---

### License
This project is licensed under the **MIT** license.

> For any questions, open an issue on GitHub or contact the maintainer at contact@sumanjangili.com.