Version: 1.0
Date: February 10, 2026
Target Audience: Developers setting up local development environment
- Prerequisites
- Supabase Setup
- API Setup (ASP.NET Core)
- SPA Setup (Browser)
- WPF Setup (Desktop)
- Environment Configuration
- Verification & Testing
- Troubleshooting
| Software | Version | Purpose | Download Link |
|---|---|---|---|
| .NET SDK | 6.0+ | API and WPF development | https://dot.net |
| Node.js | 16+ | SPA development (optional) | https://nodejs.org |
| Git | Latest | Version control | https://git-scm.com |
| Visual Studio 2022 | Latest | WPF development (optional) | https://visualstudio.com |
| VS Code | Latest | Code editor | https://code.visualstudio.com |
- OS: Windows 10/11, macOS, or Linux
- RAM: 8GB minimum, 16GB recommended
- Storage: 5GB free space
- Internet: Required for initial setup
- Go to https://supabase.com
- Click "Start your project"
- Sign up with GitHub (recommended)
- Verify email
- Click "New Project"
- Configure:
- Name: FamilyTogether
- Database Password: Generate strong password (SAVE THIS!)
- Region: US West (recommended)
- Pricing: Free
- Wait 2-3 minutes for provisioning
- Go to Project Settings → API
- Save these values:
Project URL: https://xxxxx.supabase.co anon public key: eyJhbGc... service_role key: eyJhbGc... (keep secret!) JWT Secret: (in Settings → API → JWT Settings)
- Go to SQL Editor
- Click "New Query"
- Copy entire PostgreSQL migration from
Database_Schema_Design.md - Execute (F5)
- Verify all tables created
Run RLS policies from Database_Schema_Design.md
- Go to Authentication → Providers
- Enable Email provider
- Turn OFF "Confirm email" for development
- Save
mkdir FamilyTogether
cd FamilyTogether
dotnet new webapi -n FamilyTogether.API
cd FamilyTogether.APIdotnet add package Npgsql.EntityFrameworkCore.PostgreSQL --version 6.0.8
dotnet add package Microsoft.AspNetCore.Authentication.JwtBearer --version 6.0.12
dotnet add package Microsoft.EntityFrameworkCore.Design --version 6.0.12
dotnet add package Supabase --version 0.9.3
dotnet add package Newtonsoft.Json --version 13.0.3{
"ConnectionStrings": {
"Supabase": "Host=db.xxxxx.supabase.co;Database=postgres;Username=postgres;Password=YOUR_PASSWORD"
},
"Supabase": {
"Url": "https://xxxxx.supabase.co",
"Key": "YOUR_ANON_KEY",
"JwtSecret": "YOUR_JWT_SECRET"
},
"Jwt": {
"Issuer": "https://xxxxx.supabase.co/auth/v1",
"Audience": "authenticated",
"ExpiryMinutes": 60
}
}dotnet run
# Visit https://localhost:5001/swaggermkdir FamilyTogether.SPA
cd FamilyTogether.SPA
mkdir src src/services src/components src/utils<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>FamilyTogether</title>
<script src="https://cdn.jsdelivr.net/npm/@supabase/supabase-js@2"></script>
</head>
<body>
<div id="app"></div>
<script type="module" src="src/app.js"></script>
</body>
</html># Option 1: Python
python -m http.server 8000
# Option 2: Node.js
npx http-server -p 8000
# Visit http://localhost:8000dotnet new wpf -n FamilyTogether.WPF
cd FamilyTogether.WPFdotnet add package Microsoft.EntityFrameworkCore.Sqlite --version 6.0.12
dotnet add package Microsoft.EntityFrameworkCore.Design --version 6.0.12
dotnet add package Newtonsoft.Json --version 13.0.3dotnet run{
"ConnectionStrings": {
"Supabase": "YOUR_CONNECTION_STRING"
},
"Supabase": {
"Url": "YOUR_PROJECT_URL",
"Key": "YOUR_ANON_KEY",
"JwtSecret": "YOUR_JWT_SECRET"
}
}const CONFIG = {
supabaseUrl: 'https://xxxxx.supabase.co',
supabaseKey: 'your_anon_key',
apiUrl: 'http://localhost:5000'
};.env
.env.local
appsettings.Development.json
bin/
obj/
node_modules/
*.db
.vs/
-- In Supabase SQL Editor
SELECT * FROM families;
-- Should return empty (no error)dotnet run
# Visit https://localhost:5001/swagger
# Try health endpointindexedDB.databases().then(dbs => console.log(dbs))- Verify project URL correct
- Check anon key
- Ensure RLS policies allow access
// In Program.cs
app.UseCors("AllowAll");- Verify JWT secret matches
- Check token expiry
- Ensure audience/issuer correct
rm -rf Migrations/
dotnet ef migrations add InitialCreate
dotnet ef database updateAfter setup complete:
- ✅ Verify all components running
- ✅ Test authentication
- ✅ Create test data
- → Proceed to Implementation_Roadmap.md
END OF DEVELOPMENT SETUP GUIDE