feat: same as initial commit
This commit is contained in:
17
.gitignore
vendored
Normal file
17
.gitignore
vendored
Normal file
@@ -0,0 +1,17 @@
|
||||
node_modules/
|
||||
dist/
|
||||
build/
|
||||
|
||||
.env
|
||||
.env.local
|
||||
.env.*.local
|
||||
|
||||
*.log
|
||||
npm-debug.log*
|
||||
|
||||
*.tsbuildinfo
|
||||
|
||||
.DS_Store
|
||||
Thumbs.db
|
||||
|
||||
coverage/
|
||||
42
README.md
Normal file
42
README.md
Normal file
@@ -0,0 +1,42 @@
|
||||
# Family Budget
|
||||
|
||||
Local SPA for family budget tracking: import bank statements, categorize transactions, view analytics.
|
||||
|
||||
## Monorepo structure
|
||||
|
||||
```
|
||||
family_budget/
|
||||
├── backend/ — Node.js API server (Express + TypeScript)
|
||||
├── frontend/ — React SPA (Vite + TypeScript)
|
||||
├── shared/ — Shared TypeScript types (API contracts, entities)
|
||||
├── docs/ — Specifications and backlog
|
||||
└── package.json — npm workspaces root
|
||||
```
|
||||
|
||||
## Tech stack
|
||||
|
||||
| Layer | Choice | Rationale |
|
||||
|----------|------------------------|--------------------------------------------------------|
|
||||
| Backend | Express + TypeScript | Simple, well-known, sufficient for a small local app |
|
||||
| Frontend | React + Vite + TS | Fast dev experience, modern tooling |
|
||||
| Database | PostgreSQL | Deployed on Synology NAS |
|
||||
| Migrations | Knex | Lightweight, SQL-close, supports seeds |
|
||||
| Shared | Pure TypeScript types | Zero-runtime, imported by both backend and frontend |
|
||||
|
||||
## Prerequisites
|
||||
|
||||
- Node.js >= 20
|
||||
- PostgreSQL >= 15
|
||||
- npm >= 10
|
||||
|
||||
## Getting started
|
||||
|
||||
```bash
|
||||
# Install all workspace dependencies
|
||||
npm install
|
||||
|
||||
# Build shared types (must be done before backend/frontend)
|
||||
npm run build -w shared
|
||||
```
|
||||
|
||||
See `backend/README.md` and `frontend/README.md` for per-package instructions.
|
||||
4002
package-lock.json
generated
Normal file
4002
package-lock.json
generated
Normal file
File diff suppressed because it is too large
Load Diff
10
package.json
Normal file
10
package.json
Normal file
@@ -0,0 +1,10 @@
|
||||
{
|
||||
"name": "family-budget",
|
||||
"version": "0.1.0",
|
||||
"private": true,
|
||||
"workspaces": [
|
||||
"shared",
|
||||
"backend",
|
||||
"frontend"
|
||||
]
|
||||
}
|
||||
Reference in New Issue
Block a user