Junior Full-Stack Developer Internship Project at Sof Omar Technologies — Building an offline-first PWA ERP for Ethiopian SMEs using React 19, NestJS, Prisma, PostgreSQL
# SmartBiz ERP Lite
A production-ready Offline-First ERP Progressive Web Application designed for Ethiopian SMEs.
## Features
- **Dashboard** - KPI overview, charts, quick actions, activity feed
- **Products** - Complete product catalog with pricing engine
- **Categories** - Product category management with soft delete
- **Units** - Measurement unit management (Piece, Kg, Liter, etc.)
- **Pricing Engine** - Automatic selling price calculation with cost breakdown
- **Inventory** - Stock tracking and management
- **Customers** - Customer management with credit tracking
- **Sales** - Point of Sale (POS) and sales management
- **Expenses** - Expense tracking and categorization
- **Reports** - Business analytics and reporting
- **Settings** - Business configuration
- **Offline-First PWA** - Progressive Web App support with service workers and manifest
## Tech Stack
### Frontend
- React 19
- TypeScript
- Vite
- TanStack Router
- TanStack Query
- Zustand
- Tailwind CSS
- Shadcn UI
- React Hook Form
- Zod
- Recharts (charts)
- Lucide Icons
### Backend
- NestJS
- TypeScript
- Prisma ORM
- PostgreSQL 15
- JWT Authentication
- Passport
- bcrypt
- Swagger
### DevOps
- Docker
- GitHub Actions CI/CD
- ESLint
- Prettier
- Husky
- lint-staged
## Prerequisites
- Node.js 20+
- npm 10+
- PostgreSQL 15+
- Docker (optional)
## Getting Started
### 1. Clone the repository
```bash
git clone
github.com
cd smartbiz-erp-lite
```
### 2. Run setup script
```bash
chmod +x scripts/setup.sh
./scripts/setup.sh
```
### 3. Start development
```bash
npm run dev
```
### 4. Access the application
- Frontend:
localhost
- Backend API:
localhost
- Swagger Docs:
localhost
## Project Structure
```
smartbiz-erp-lite/
├── frontend/ # React PWA (Vite + TypeScript)
│ ├── src/
│ │ ├── app/ # App shell and providers
│ │ ├── components/
│ │ │ ├── ui/ # Reusable UI primit …