Skip to content

Commit c62ccb1

Browse files
committed
update
1 parent 3dfb0ba commit c62ccb1

1 file changed

Lines changed: 77 additions & 0 deletions

File tree

docs/releases/beta-v3.0.0.md

Lines changed: 77 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,77 @@
1+
# Beta v3.0.0 - Social Hub
2+
3+
First release with online social features. Profiles, following, posts, direct/group messages, public marketplace and a one-shot admin gate. **Beta** release -- feedback welcome via [GitHub Issues](https://github.com/elymsyr/dungeon-master-tool/issues).
4+
5+
---
6+
7+
## Downloads
8+
9+
| Platform | File | Notes |
10+
| :--- | :--- | :--- |
11+
| Android | `DungeonMasterTool-Android.apk` | Enable "Install from unknown sources" if prompted |
12+
| iOS | `DungeonMasterTool-iOS.ipa` | Unsigned -- sideload via Xcode or AltStore |
13+
| Windows | `DungeonMasterTool-Windows.zip` | Extract and run `dungeon_master_tool.exe` |
14+
| Linux | `DungeonMasterTool-Linux.zip` | Extract and run `./bundle/dungeon_master_tool` |
15+
| macOS | `DungeonMasterTool-MacOS.zip` | See [macOS installation guide](https://github.com/elymsyr/dungeon-master-tool#macos-installation) |
16+
17+
---
18+
19+
## Highlights
20+
21+
- **Profile menu** -- the top-right sign-in/out icon is now an avatar + username popup with View Profile, Edit Profile, Admin Panel (admins only) and Sign Out actions. New users get a mandatory username dialog on first sign-in.
22+
- **Social hub redesign** -- the Social tab is now a 4-section shell with a pill-style segmented control: **Feed**, **Players**, **Messages**, **Marketplace**. Cleaner desktop layout with a 720px centered max-width.
23+
- **Feed** -- post composer with character counter, follow-based timeline, image upload (counts toward your storage quota).
24+
- **Players** -- public game listings ("looking for a group"), seat counts, schedule, plus username search to discover and follow other DMs.
25+
- **Messages** -- direct messages and group chats over Supabase Realtime, asymmetric chat bubbles, conversation list with last-message preview.
26+
- **Marketplace** -- browse public worlds, templates and packages from every user. Filter by type, jump to the owner's profile.
27+
- **Per-item public/private toggle** -- world/template/package settings dialogs now have a visibility switch. Public items are uploaded as gzip payloads to Supabase Storage and shown in the Marketplace + the owner's profile.
28+
- **Cloud backup relocation** -- backup list moved out of the Social tab into the top-right cloud icon, sitting directly above the storage bar.
29+
- **Admin gate** -- privileged actions like updating the built-in D&D 5e template are gated through a Supabase `is_admin()` RPC. The admin email is **not** in the source code -- the grant is a one-time SQL run on the Supabase dashboard.
30+
31+
---
32+
33+
## Backend changes
34+
35+
New Supabase migration `003_social.sql` introduces:
36+
37+
- `profiles`, `follows`, `profile_counts` view, `search_profiles` RPC
38+
- `posts`, `game_listings`, `shared_items`
39+
- `conversations`, `conversation_members`, `messages` (with realtime)
40+
- `app_admins` table + `is_admin()` SECURITY DEFINER RPC
41+
- Extended `get_user_total_storage_used` to cover posts + shared payloads
42+
- Row-Level Security on every table (public read where appropriate, owner-only writes, conversation membership for messages)
43+
44+
Storage buckets: `avatars` (public), `post-images` (public), `shared-payloads` (private).
45+
46+
---
47+
48+
## Technical Details
49+
50+
- **Framework:** Flutter 3.41 / Dart 3.11
51+
- **Architecture:** Clean Architecture (Domain / Data / Application / Presentation)
52+
- **State Management:** Riverpod
53+
- **Database:** Drift SQLite (local) + Supabase Postgres (online)
54+
- **Realtime:** Supabase channels for chat
55+
- **Models:** Freezed + json_serializable
56+
- **Routing:** go_router with `/profile/:userId` and `/admin` routes
57+
58+
---
59+
60+
## Upgrading from 2.0.3
61+
62+
1. Apply `supabase/migrations/003_social.sql` on your Supabase project.
63+
2. Create the storage buckets listed above.
64+
3. (Admin only) Run the one-shot grant from `supabase/README.md` to seed `app_admins`.
65+
4. Rebuild the app -- no local DB migration is required (the local Drift schema is unchanged; public/private state lives in Supabase).
66+
67+
---
68+
69+
## What's Next
70+
71+
See [TODO.md](https://github.com/elymsyr/dungeon-master-tool/blob/main/TODO.md) for the roadmap.
72+
73+
---
74+
75+
## License
76+
77+
[CC BY-NC 4.0](https://github.com/elymsyr/dungeon-master-tool/blob/main/LICENSE)

0 commit comments

Comments
 (0)