[S0-T01] Initialize monorepo with packages/engine, packages/api, packages/web directories
This commit is contained in:
parent
0d7cf4a454
commit
1d23b579fe
8 changed files with 127 additions and 0 deletions
50
.gitignore
vendored
Normal file
50
.gitignore
vendored
Normal file
|
|
@ -0,0 +1,50 @@
|
|||
# Python
|
||||
__pycache__/
|
||||
*.py[cod]
|
||||
*.pyo
|
||||
.mypy_cache/
|
||||
.ruff_cache/
|
||||
.pytest_cache/
|
||||
*.egg-info/
|
||||
dist/
|
||||
build/
|
||||
.venv/
|
||||
venv/
|
||||
*.env
|
||||
|
||||
# Poetry
|
||||
poetry.lock
|
||||
|
||||
# Node
|
||||
node_modules/
|
||||
.next/
|
||||
out/
|
||||
.pnpm-store/
|
||||
|
||||
# IDE
|
||||
.vscode/
|
||||
.idea/
|
||||
*.swp
|
||||
*.swo
|
||||
|
||||
# OS
|
||||
.DS_Store
|
||||
Thumbs.db
|
||||
|
||||
# Parquet / data
|
||||
*.parquet
|
||||
*.db
|
||||
*.sqlite
|
||||
|
||||
# Secrets
|
||||
.env
|
||||
.env.local
|
||||
.env.*.local
|
||||
|
||||
# Coverage
|
||||
.coverage
|
||||
htmlcov/
|
||||
coverage.xml
|
||||
|
||||
# Alembic
|
||||
packages/api/alembic/versions/__pycache__/
|
||||
36
Makefile
Normal file
36
Makefile
Normal file
|
|
@ -0,0 +1,36 @@
|
|||
.PHONY: setup dev test lint build clean
|
||||
|
||||
setup:
|
||||
@echo "==> Installing engine deps"
|
||||
cd packages/engine && poetry install
|
||||
@echo "==> Installing api deps"
|
||||
cd packages/api && poetry install
|
||||
@echo "==> Installing web deps"
|
||||
cd packages/web && pnpm install
|
||||
|
||||
dev:
|
||||
@echo "==> Starting services (Redis, API, worker, web)"
|
||||
docker compose up -d redis
|
||||
cd packages/api && poetry run uvicorn remodel_api.main:app --reload --port 8000 &
|
||||
cd packages/api && poetry run arq remodel_api.workers.main.WorkerSettings &
|
||||
cd packages/web && pnpm dev
|
||||
|
||||
test:
|
||||
cd packages/engine && poetry run pytest --cov=remodel_engine --cov-report=term-missing
|
||||
cd packages/api && poetry run pytest --cov=remodel_api --cov-report=term-missing
|
||||
|
||||
lint:
|
||||
cd packages/engine && poetry run ruff check . && poetry run mypy src/
|
||||
cd packages/api && poetry run ruff check . && poetry run mypy src/
|
||||
cd packages/web && pnpm tsc --noEmit && pnpm eslint .
|
||||
|
||||
build:
|
||||
cd packages/web && pnpm build
|
||||
|
||||
clean:
|
||||
find . -type d -name __pycache__ -exec rm -rf {} +
|
||||
find . -type d -name .mypy_cache -exec rm -rf {} +
|
||||
find . -type d -name .ruff_cache -exec rm -rf {} +
|
||||
find . -type d -name .pytest_cache -exec rm -rf {} +
|
||||
find . -type d -name .next -exec rm -rf {} +
|
||||
find . -type d -name node_modules -exec rm -rf {} +
|
||||
41
README.md
Normal file
41
README.md
Normal file
|
|
@ -0,0 +1,41 @@
|
|||
# REmodel
|
||||
|
||||
Python calculation engine + FastAPI backend + Next.js frontend for Indian renewable energy (Solar + Wind + BESS) project finance modeling.
|
||||
|
||||
## Quick start
|
||||
|
||||
```bash
|
||||
# Prerequisites: Python 3.12, Poetry, Node 20, pnpm, Docker
|
||||
make setup # install all deps
|
||||
make dev # start Redis, API worker, API server, web server
|
||||
```
|
||||
|
||||
## Services (after `make dev`)
|
||||
|
||||
| Service | URL |
|
||||
|-------------|-------------------------|
|
||||
| Web UI | http://localhost:3000 |
|
||||
| API | http://localhost:8000 |
|
||||
| API docs | http://localhost:8000/docs |
|
||||
| Redis | localhost:6379 |
|
||||
|
||||
## Package layout
|
||||
|
||||
```
|
||||
packages/
|
||||
├── engine/ pip-installable Python calculation library
|
||||
├── api/ FastAPI + Arq async worker
|
||||
└── web/ Next.js 14 App Router frontend
|
||||
```
|
||||
|
||||
## Common commands
|
||||
|
||||
```bash
|
||||
make setup # one-time install
|
||||
make dev # start all services (requires Docker for Redis)
|
||||
make test # pytest + jest
|
||||
make lint # ruff + mypy + tsc
|
||||
make build # production build
|
||||
```
|
||||
|
||||
See each package's own `README.md` for package-specific commands.
|
||||
0
packages/api/src/remodel_api/.gitkeep
Normal file
0
packages/api/src/remodel_api/.gitkeep
Normal file
0
packages/api/tests/.gitkeep
Normal file
0
packages/api/tests/.gitkeep
Normal file
0
packages/engine/src/remodel_engine/.gitkeep
Normal file
0
packages/engine/src/remodel_engine/.gitkeep
Normal file
0
packages/engine/tests/.gitkeep
Normal file
0
packages/engine/tests/.gitkeep
Normal file
0
packages/web/src/.gitkeep
Normal file
0
packages/web/src/.gitkeep
Normal file
Loading…
Add table
Reference in a new issue