# Technology Stack

**Analysis Date:** 2026-03-13

## Languages

**Primary:**
- TypeScript 5.2.2 - Both backend (`backend/`) and frontend (`frontend/`)
- JavaScript (via transpilation) - Runtime execution

**Secondary:**
- HTML/CSS - Static promo site (`promo-site/`)

## Runtime

**Environment:**
- Node.js (runtime for backend)
- Browser (runtime for frontend)

**Package Manager:**
- npm (lockfiles: `package-lock.json` in both `backend/` and `frontend/`)
- Lockfile: Present

## Frameworks

**Core:**
- Express 4.18.2 - Backend API server (`backend/package.json`)
- React 18.2.0 - Frontend UI library (`frontend/package.json`)

**Testing:**
- Jest 29.6.2 - Unit testing for backend (`backend/package.json`)
- ts-jest - TypeScript support for Jest

**Build/Dev:**
- Vite 4.4.9 - Frontend build tool and dev server (`frontend/package.json`)
- TypeScript 5.2.2 - Type checking and compilation for both layers
- ts-node-dev - Development server for backend (`backend/package.json`)

## Key Dependencies

**Critical (Backend):**
- `express` 4.18.2 - HTTP server framework
- `mongoose` 7.5.0 - MongoDB ODM (configured, partially implemented)
- `jsonwebtoken` 9.0.2 - Authentication tokens
- `bcryptjs` 2.4.3 - Password hashing
- `zod` 3.22.2 - Schema validation (available, not fully utilized)
- `socket.io` 4.7.2 - Real-time communication (installed, usage unclear)

**Critical (Frontend):**
- `react` 18.2.0 - UI library
- `react-router-dom` 6.15.0 - Client-side routing
- `tailwindcss` 3.3.3 - Utility-first CSS framework
- `next-themes` 0.2.1 - Dark mode handling
- `lucide-react` 0.263.1 - Icon library
- `vite` 4.4.9 - Build tool

**Infrastructure:**
- `cors` 2.8.5 - Backend CORS handling
- `helmet` 7.0.0 - Security headers
- `multer` 1.4.5-lts.1 - File upload handling

## Configuration

**Environment:**
- **Backend:** `.env` file in root (not shown in structure, referenced in code)
  - Configured in `backend/src/config.ts`
  - Key configs: `PORT`, `NODE_ENV`, `CORS_ORIGIN`, `MONGODB_URI`, `JWT_SECRET`, `UPLOADS_DIR`
- **Frontend:** `.env` file in `frontend/` (not read due to security rules, likely Vite env vars)

**Build:**
- **Backend:** `backend/tsconfig.json` - TypeScript configuration
- **Frontend:**
  - `frontend/vite.config.ts` - Vite build configuration with path aliases
  - `frontend/tailwind.config.ts` - TailwindCSS theme configuration
  - `frontend/postcss.config.js` - PostCSS processing

## Platform Requirements

**Development:**
- Node.js environment (backend)
- Modern browser with ES6+ support (frontend)

**Production:**
- Node.js server for backend API
- Static file hosting for frontend (Vite build output)
- Static file hosting for promo site

---

*Stack analysis: 2026-03-13*
