Skip to content
Merged

1.4 #78

Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
82 commits
Select commit Hold shift + click to select a range
69479a0
Enhance tab functionality and admin panel UI
jherforth Mar 3, 2026
ed3f0f2
Enhance tabs.md with UI and customization details
jherforth Mar 3, 2026
84a7d99
Add files via upload
jherforth Mar 3, 2026
b34e4eb
Enhance tabs.md with screenshot and UI details
jherforth Mar 3, 2026
15b0878
Revise tab creation process and display details
jherforth Mar 10, 2026
4e71497
Updated index.js
jherforth Mar 10, 2026
fd811c6
Updated index.js
jherforth Mar 10, 2026
63d2e46
Updated nginx.conf
jherforth Mar 10, 2026
cbb4682
Updated apiConfig.js
jherforth Mar 10, 2026
8e282d7
Updated TabIconModal.jsx
jherforth Mar 10, 2026
20dd0ba
Updated TabBar.jsx
jherforth Mar 10, 2026
d2b8dce
Updated app.jsx
jherforth Mar 10, 2026
3ed1099
Added ColorPickerPopover.jsx
jherforth Mar 10, 2026
30659d4
Updated app.jsx
jherforth Mar 10, 2026
d708220
Updated index.css
jherforth Mar 10, 2026
08eaed2
bug: bonus chore will complete regular chores #53
Szeraax Mar 10, 2026
6210338
Updated CalendarWidget.jsx
jherforth Mar 10, 2026
3a445ed
Updated MonthDayCell.jsx
jherforth Mar 10, 2026
9d113f8
Updated WidgetContainer.jsx
jherforth Mar 10, 2026
cefd34c
Updated WidgetContainer.jsx
jherforth Mar 10, 2026
33596fd
Updated WidgetGallery.jsx
jherforth Mar 10, 2026
7575e1d
feat: get settings by key #37
Szeraax Mar 11, 2026
fd6bcfb
fix: properly hide label
Szeraax Mar 11, 2026
6976441
Updated index.js
jherforth Mar 11, 2026
4eb015a
Updated index.js
jherforth Mar 11, 2026
b0fdda8
Updated index.js
jherforth Mar 11, 2026
a263195
Updated index.js
jherforth Mar 11, 2026
77653a4
Updated CalendarWidget.jsx
jherforth Mar 11, 2026
2cee48f
Updated CalendarWidget.jsx
jherforth Mar 11, 2026
5d07b92
Updated ChoreWidget.jsx
jherforth Mar 11, 2026
3c2155a
Updated index.js
jherforth Mar 11, 2026
27f7930
Updated app.jsx
jherforth Mar 11, 2026
4f7aac6
Updated app.jsx
jherforth Mar 11, 2026
93be8f3
Updated index.js
jherforth Mar 11, 2026
22030b4
Updated index.js
jherforth Mar 11, 2026
5cd4f91
Updated index.js
jherforth Mar 11, 2026
fc1888f
Updated app.jsx
jherforth Mar 11, 2026
a248b04
Updated index.js
jherforth Mar 11, 2026
540be09
Add extra_hosts entry for frontend-test service
jherforth Mar 11, 2026
8e3e5e7
Update docker-compose-dev.yml configuration
jherforth Mar 11, 2026
27b6ee9
Update tabs endpoints
Szeraax Mar 12, 2026
b17e6d2
Update widget endpoints
Szeraax Mar 12, 2026
045dde9
Update client endpoints
Szeraax Mar 12, 2026
1cd1cb0
add migration
Szeraax Mar 12, 2026
a15d5f4
devices management
Szeraax Mar 12, 2026
363edba
Revert "devices management"
Szeraax Mar 12, 2026
fbcb1d8
remap tabs
Szeraax Mar 13, 2026
f2c1b11
use tab number instead of index
Szeraax Mar 13, 2026
fe26f0c
fix widget laouys/bulk
Szeraax Mar 13, 2026
a0c01e1
feat: manage tabs
Szeraax Mar 13, 2026
24a45c8
disable saving layouts
Szeraax Mar 13, 2026
9a21c3b
remove initialization indexes
Szeraax Mar 13, 2026
3c7f8b0
update readme and contributing
Szeraax Mar 13, 2026
ecb8bbe
update gitignore
Szeraax Mar 13, 2026
c89c4f8
remove package-lock.json
Szeraax Mar 13, 2026
2135bad
reset db to commit b34e4ebf9f841868f2d0fe10e3985b53613dad88
Szeraax Mar 13, 2026
5ecec2d
fix: widget positions should save by tab id
Szeraax Mar 14, 2026
824d060
refactor: tab management
Szeraax Mar 14, 2026
25fbdea
refresh tabs onTabsChanged
Szeraax Mar 14, 2026
8182e81
make widgets dynamically updated on tab assignment save
Szeraax Mar 14, 2026
186f9da
feat: device management and import
Szeraax Mar 14, 2026
568fdff
Merge pull request #67 from jherforth/#64
jherforth Mar 14, 2026
7301590
add edit capability
Szeraax Mar 14, 2026
268cebe
rename deviceGuid to deviceName
Szeraax Mar 14, 2026
b300779
refactor: migrations initial move
Szeraax Mar 14, 2026
716d58f
simplify
Szeraax Mar 14, 2026
748e221
simplify
Szeraax Mar 14, 2026
18fdbec
simplify
Szeraax Mar 14, 2026
72f7191
update db schema
Szeraax Mar 14, 2026
e0f1ff6
showcase migration code
Szeraax Mar 14, 2026
96d6e14
set versions to major only in preparation for 1.4 release
Szeraax Mar 14, 2026
d79402b
refactor: migrate events cache #69
Szeraax Mar 15, 2026
dc3b576
Add Celsius/Fahrenheit toggle
jherforth Apr 1, 2026
2a861e4
Fix Home tab logo import
jherforth Apr 1, 2026
a5e71d0
Updated TabBar.jsx
jherforth Apr 1, 2026
9e54b05
prevent double clicking
Szeraax Apr 4, 2026
4d770ca
feat: Calendar view #73
Szeraax Apr 4, 2026
b40fdbd
fix: controls no longer release properly
Szeraax Apr 4, 2026
7096504
Weather widget improvements
Szeraax Apr 4, 2026
1947078
fix: widgets should use local on tab switch
Szeraax Apr 4, 2026
65229f1
feat: weather widget settings #77
Szeraax Apr 4, 2026
e8b9c43
Merge branch 'main' into Testing
Szeraax Apr 5, 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
4 changes: 3 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -7,4 +7,6 @@
# You might also want to ignore node_modules and build outputs
node_modules/
dist/
build/
build/

package-lock.json
59 changes: 59 additions & 0 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,59 @@
# Contributing

We welcome contributions! Here's how to get started:

1. **Fork the Repository**
2. **Create a Feature Branch**: `git checkout -b feature/amazing-feature`
3. **Make Your Changes**: Follow the existing code style
4. **Test Thoroughly**: Ensure both light/dark themes work
5. **Submit a Pull Request**: Describe your changes clearly

## Development Guidelines
- **Follow existing patterns** for consistency
- **Test on multiple screen sizes** (mobile, tablet, desktop)
- **Verify theme compatibility** (light/dark modes)
- **Update documentation** for new features
- **Add error handling** for robust operation

## Workflow

You can use docker compose like building from source, or you can run the app directly with npm.


For local development with hot reloading:

#### Step 1: Install Dependencies
```bash
# Backend
cd server
npm install

# Frontend
cd ../client
npm install
```

#### Step 2: Configure Environment
Create `server/.env`:
```env
PORT=5000
```

Create `client/.env`:
```env
VITE_REACT_APP_API_URL=http://localhost:5000
VITE_OPENWEATHER_API_KEY=your_openweather_api_key_here
```

#### Step 3: Run Development Servers
```bash
# Terminal 1 - Backend
cd server
npm start

# Terminal 2 - Frontend
cd client
npm run dev
```

You'll want to edit the env variable PORT and set it to 5001 since the client on port 3001 will look for a server existing on port 5001
15 changes: 1 addition & 14 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -141,20 +141,7 @@ DISCLAIMER: This project uses AI in its development process. While you are right

## 🤝 Contributing

We welcome contributions! Here's how to get started:

1. **Fork the Repository**
2. **Create a Feature Branch**: `git checkout -b feature/amazing-feature`
3. **Make Your Changes**: Follow the existing code style
4. **Test Thoroughly**: Ensure both light/dark themes work
5. **Submit a Pull Request**: Describe your changes clearly

### Development Guidelines
- **Follow existing patterns** for consistency
- **Test on multiple screen sizes** (mobile, tablet, desktop)
- **Verify theme compatibility** (light/dark modes)
- **Update documentation** for new features
- **Add error handling** for robust operation
Read our [contributing](CONTRIBUTING.md) guidelines.

## 📄 License

Expand Down
19 changes: 12 additions & 7 deletions client/nginx.conf
Original file line number Diff line number Diff line change
Expand Up @@ -30,13 +30,15 @@ server {
proxy_read_timeout 90;
}

# Uploads proxy (case-sensitive paths)
# Uploads proxy (case-sensitive paths) - must come before static file caching
location /uploads/ {
proxy_pass http://${BACKEND_SERVICE}:${BACKEND_PORT}/uploads/;
proxy_http_version 1.1;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_cache_bypass $arg_nocache;
add_header X-Proxy-Cache $upstream_cache_status;
}

location /Uploads/ {
Expand All @@ -45,6 +47,8 @@ server {
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_cache_bypass $arg_nocache;
add_header X-Proxy-Cache $upstream_cache_status;
}

# Widgets proxy
Expand All @@ -56,14 +60,15 @@ server {
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}

# Cache static assets from build - but NOT from /Uploads/ or /uploads/
location ~* ^/(?!Uploads|uploads|widgets).*\.(js|css|png|jpg|jpeg|gif|ico|svg|woff|woff2|ttf|eot)$ {
try_files $uri =404;
expires 1y;
add_header Cache-Control "public, immutable";
}

# React Router - serve index.html for all routes
location / {
try_files $uri $uri/ /index.html;
}

# Cache static assets
location ~* \.(js|css|png|jpg|jpeg|gif|ico|svg|woff|woff2|ttf|eot)$ {
expires 1y;
add_header Cache-Control "public, immutable";
}
}
Loading
Loading