Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
33 commits
Select commit Hold shift + click to select a range
728cd17
Update GitHub Actions to v7 for Node 24 compatibility
danialkhilji Aug 15, 2026
05bca5b
Increase Vite chunk size warning limit to 1MB
danialkhilji Aug 15, 2026
05a14b2
Show Islamic calendar date on phone screens
danialkhilji Aug 17, 2026
93976df
Hide completed tasks by default with show/hide toggle
danialkhilji Aug 17, 2026
754ea70
Hide purchased shopping items from list, show count at bottom
danialkhilji Aug 17, 2026
a329e50
Dashboard cards show only active tasks and unpurchased items
danialkhilji Aug 17, 2026
8551029
Add auto-cleanup scheduler and hide completed items from lists and da…
danialkhilji Aug 17, 2026
243f3a0
Show completed tasks and purchased items for 24 hours before hiding
danialkhilji Aug 17, 2026
04f549f
Update tests to match rotation and cleanup bug fixes
danialkhilji Aug 19, 2026
f9d1410
Fix stale closure in calendar swipe, update version, remove dead cond…
danialkhilji Aug 19, 2026
eb960ba
Deduplicate shared constants and improve CI pipeline
danialkhilji Aug 19, 2026
08949e3
Add tsbuildinfo to gitignore
danialkhilji Aug 19, 2026
6d56f0a
Invalidate calendar cache on birthday create/delete
danialkhilji Aug 19, 2026
8fa6563
Fix prayer times alignment on mobile with equal-width grid columns
danialkhilji Aug 19, 2026
fd60bdb
Untrack tsbuildinfo build cache file
danialkhilji Aug 19, 2026
65560a4
Apply warm ivory theme palette and replace all hardcoded bg-white
danialkhilji Aug 20, 2026
8207635
Add dark floating nav bar, SVG prayer icons, and warm weather gradients
danialkhilji Aug 24, 2026
fc26fb7
Merge pull request #6 from danialkhilji/theme
danialkhilji Aug 24, 2026
0fd50a3
Add toggle for older purchased items on shopping page and rename Fami…
danialkhilji Aug 24, 2026
ed37348
Add screenshots to README, simplify quick-add modal to single input
danialkhilji Aug 24, 2026
af013c0
Add night sky weather variants with stars and hide 0% rain chance
danialkhilji Aug 24, 2026
2fd835b
Add member avatar upload, serve, and delete endpoints
danialkhilji Aug 24, 2026
32e1493
Add member avatar upload UI and display avatars across all pages
danialkhilji Aug 24, 2026
b47af08
Add avatar tests covering upload, serve, delete, cascade, and resize
danialkhilji Aug 24, 2026
3b60caf
Fix MemberDot sizing and reduce prayer time text on mobile
danialkhilji Aug 25, 2026
b48c089
Merge add/edit modals into unified modals for all features
danialkhilji Aug 25, 2026
bc398ee
Stack photo actions vertically in member modal
danialkhilji Aug 25, 2026
56ef2de
Extract shared icons, constants, calendar utils, and backend helpers
danialkhilji Aug 26, 2026
dfd1c39
Extract shared ColourPicker and spring constant, deduplicate schemas,…
danialkhilji Aug 26, 2026
a142411
Standardize modal state, move ReorderRequest to shared schemas, reduc…
danialkhilji Aug 26, 2026
2292ad8
Split README into concise landing page with separate deployment and d…
danialkhilji Aug 26, 2026
c96a401
Add contributing guide with branch workflow and code conventions
danialkhilji Aug 26, 2026
ebb6d5b
Fix ruff lint errors in scheduler, routers, and schemas
danialkhilji Aug 26, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
32 changes: 28 additions & 4 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -12,12 +12,13 @@ jobs:
runs-on: ubuntu-latest

steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v7

- name: Set up Python 3.12
uses: actions/setup-python@v5
with:
python-version: "3.12"
cache: 'pip'

- name: Install dependencies
working-directory: backend
Expand All @@ -32,12 +33,14 @@ jobs:
runs-on: ubuntu-latest

steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v7

- name: Set up Node
uses: actions/setup-node@v4
uses: actions/setup-node@v7
with:
node-version: "22"
cache: 'npm'
cache-dependency-path: 'frontend/package-lock.json'

- name: Install dependencies
working-directory: frontend
Expand All @@ -49,4 +52,25 @@ jobs:

- name: Build
working-directory: frontend
run: npm run build
run: npm run build

backend-lint:
name: Backend Lint
runs-on: ubuntu-latest

steps:
- uses: actions/checkout@v7

- name: Set up Python 3.12
uses: actions/setup-python@v5
with:
python-version: "3.12"
cache: 'pip'

- name: Install dependencies
working-directory: backend
run: pip install -e ".[dev]"

- name: Run ruff
working-directory: backend
run: ruff check app/
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@ build/
node_modules/
dist/
.vite/
*.tsbuildinfo

# Environment
.env
Expand Down
59 changes: 59 additions & 0 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,59 @@
# Contributing to HomeOS

Thanks for your interest in contributing! Here's how to get started.

## Setup

Follow the [Development Guide](docs/DEVELOPMENT.md) to set up the project locally.

## Branch Workflow

1. **Fork** the repository on GitHub
2. **Clone** your fork locally
3. **Create a branch** from `main` with a descriptive name:
- Features: `add-meal-planner`, `add-ai-assistant`
- Fixes: `fix-prayer-time-offset`, `fix-calendar-swipe`
- Improvements: `improve-weather-card`, `refactor-task-modal`
4. **Work** on your branch, committing as you go
5. **Push** your branch to your fork
6. **Open a Pull Request** targeting the `develop` branch

## Code Conventions

### Backend (Python)
- Python 3.12+, FastAPI, SQLAlchemy (async), SQLite
- Use the `homeos` conda environment for all Python work
- Lint with `ruff check app/` — must pass with zero errors
- Follow the module pattern: `models.py` → `schemas.py` → `service.py` → `router.py`
- Business logic goes in the service layer, not the router

### Frontend (TypeScript/React)
- React 19, TypeScript, Vite, Tailwind CSS 4
- Use CSS theme variables (`bg-surface`, `text-text`, `text-primary`, etc.) — no hardcoded colours
- Shared components go in `src/components/`, feature-specific components in `src/features/<feature>/`
- Shared constants (`INPUT_STYLE`, `TAP_SPRING`, `PRESET_COLOURS`) go in `src/constants.ts`
- Use TanStack Query hooks for data fetching — no direct API calls in components

## Testing

- All backend tests must pass before submitting a PR: `pytest tests/ -v`
- TypeScript must compile cleanly: `npx tsc --noEmit`
- Frontend must build: `npm run build`
- The pre-push hook runs all three checks automatically
- Add tests for new backend endpoints

## Pull Request Guidelines

- Keep PRs focused — one feature or fix per PR
- Write a clear title and description explaining what changed and why
- Include test coverage for new backend functionality
- Never commit secrets, API keys, or personal data (`.env`, coordinates, family photos)
- Screenshots are helpful for UI changes

## Project Structure

See the [Development Guide](docs/DEVELOPMENT.md#project-structure) for a full overview of the codebase layout.

## Questions?

Open an issue if you're unsure about anything or want to discuss an approach before starting work.
Loading
Loading