44 lines
1.2 KiB
Markdown
44 lines
1.2 KiB
Markdown
# CaseForge
|
|
|
|
CS-style case opening site with virtual credits, inventory, leaderboard, and an admin panel for cases / drops / rates.
|
|
|
|
## Stack
|
|
|
|
- **Server**: Node.js, Express, Prisma, SQLite, express-session
|
|
- **Client**: React (Vite), React Router
|
|
|
|
## Setup
|
|
|
|
```bash
|
|
npm run install:all
|
|
npm run db:push
|
|
npm run db:seed
|
|
npm run dev
|
|
```
|
|
|
|
- App: http://localhost:5173
|
|
- API: http://localhost:3001
|
|
|
|
## Demo accounts
|
|
|
|
| Role | Username | Password |
|
|
|-------|----------|------------|
|
|
| Admin | `admin` | `admin123` |
|
|
| Player| `player` | `player123`|
|
|
|
|
New registrations receive **100.00** starting credits (`STARTING_BALANCE` in `server/.env`, stored in cents).
|
|
|
|
## Features
|
|
|
|
- Login / register (username + password)
|
|
- Dashboard: inventory + available cases
|
|
- Case page with CS-style reel open animation (result rolled server-side)
|
|
- Leaderboard: richest players (balance + inventory market value)
|
|
- Admin: manage cases, items, drop weights, enable/disable cases
|
|
|
|
## Notes
|
|
|
|
- Balances and prices are integers in **cents**
|
|
- `Transaction` types include `open_case` and `seed_credit` (stubs for future `deposit` / `withdrawal`)
|
|
- Swap `DATABASE_URL` to PostgreSQL later without changing app logic
|