61 lines
1.8 KiB
Markdown
61 lines
1.8 KiB
Markdown
# CrowMate Intranet
|
|
|
|
Internal staff portal for CrowMate Studio — Headless Hazard.
|
|
|
|
## Quick Start
|
|
|
|
```bash
|
|
npm install
|
|
npm run dev
|
|
```
|
|
|
|
The intranet runs on **http://localhost:5174** (port 5174 to avoid conflicts with the public site on 5173).
|
|
|
|
## Demo Accounts
|
|
|
|
| Account | Email | Role |
|
|
|---------|-------|------|
|
|
| Kestrel (Admin) | `kestrel@crowmate.dev` | dev + admin |
|
|
| Vesper (Staff) | `vesper@crowmate.dev` | com |
|
|
|
|
Regular user accounts are blocked from intranet access.
|
|
|
|
## Project Structure
|
|
|
|
```
|
|
src/
|
|
App.tsx # Router (login + intranet routes)
|
|
main.tsx # Entry point
|
|
index.css # Design tokens & global styles
|
|
contexts/
|
|
AuthContext.tsx # Auth state (staff-only login)
|
|
components/
|
|
layout/
|
|
IntranetLayout.tsx # Sidebar + main content layout
|
|
shared/
|
|
ProtectedRoute.tsx # Route guard (auth + staff check)
|
|
PageLoader.tsx # Loading spinner
|
|
pages/
|
|
LoginPage.tsx # Staff login page
|
|
intranet/
|
|
IntranetDashboard.tsx # Overview stats & nav tiles
|
|
IntranetBugs.tsx # Bug triage (filter, assign, notes)
|
|
IntranetFeed.tsx # Staff-only activity feed
|
|
IntranetEvents.tsx # Create/manage events & polls
|
|
IntranetUsers.tsx # User management (promote/ban)
|
|
IntranetModeration.tsx # Forum moderation (pin/lock/delete)
|
|
data/
|
|
mockData.ts # All mock data
|
|
types/
|
|
index.ts # TypeScript interfaces
|
|
utils/
|
|
format.ts # Date formatting helpers
|
|
```
|
|
|
|
## Scripts
|
|
|
|
- `npm run dev` — Start dev server
|
|
- `npm run build` — Type-check + production build
|
|
- `npm run lint` — Run ESLint
|
|
- `npm run preview` — Preview production build
|