a web-based payroll for malawi
# WizTech Payroll Web App
A modern, full-stack payroll management application for Malawi, built with Next.js 16, Prisma, PostgreSQL (Neon), and TypeScript.
## 🏗️ Architecture
```
payroll-web/
├── prisma/
│ ├── schema.prisma # Database schema (Employees, PayrollRecords, AuditLogs, Settings)
│ └── seed.ts # Seed script with sample data
├── src/
│ ├── app/ # Next.js App Router pages
│ │ ├── api/ # API routes
│ │ │ ├── employees/ # Employee CRUD
│ │ │ ├── payroll/ # Payroll calculation & processing
│ │ │ ├── payslips/ # Payslip generation
│ │ │ ├── reports/ # 6 report types
│ │ │ ├── dashboard/ # KPIs & charts
│ │ │ └── settings/ # Configuration management
│ │ ├── dashboard/ # Management dashboard with charts
│ │ ├── employees/ # Employee management UI
│ │ ├── payroll/ # Payroll processing UI
│ │ ├── payslips/ # Payslip viewer & PDF export
│ │ ├── reports/ # Report generator
│ │ └── settings/ # System configuration
│ ├── lib/
│ │ ├── payroll-engine.ts # Pure TS Malawi payroll calculations
│ │ ├── prisma.ts # Prisma client singleton
│ │ └── utils.ts # Utility functions
├── .env # Environment variables (DATABASE_URL, NEXTAUTH_SECRET)
├── package.json
└── README.md
```
## 🚀 Quick Start
### Prerequisites
- Node.js 18+
- Neon PostgreSQL database (or any PostgreSQL)
- npm or yarn
### Installation
```bash
cd payroll-web
# Install dependencies
npm install
# Generate Prisma client
npm run prisma:generate
# Push schema to database (requires DATABASE_URL in .env)
npm run prisma:push
# Seed with sample data
npm run prisma:seed
# Or run all at once
npm run db:setup
# Start development server
npm run dev
```
### Environment Variables
Create `.env` file:
```env
# Neon …