feat: Implement core application structure with new dashboard, settings, and help pages, and enhance opportunities management with persistence and filtering.

This commit is contained in:
2026-02-03 20:05:30 +00:00
parent 609b9da020
commit 885bbbf954
21 changed files with 1282 additions and 106 deletions

View File

@@ -0,0 +1,53 @@
"use client"
import { Card, CardContent, CardHeader, CardTitle } from "@/components/ui/card"
import { Badge } from "@/components/ui/badge"
export default function SettingsPage() {
return (
<div className="flex flex-1 flex-col gap-6 p-4 lg:p-8">
<div className="space-y-2">
<h1 className="text-2xl font-semibold">Settings</h1>
<p className="text-muted-foreground">Manage account details and API configuration.</p>
</div>
<div className="grid gap-4 lg:grid-cols-2">
<Card>
<CardHeader>
<CardTitle className="text-base">Account</CardTitle>
</CardHeader>
<CardContent className="space-y-2 text-sm text-muted-foreground">
<p>Signed in with Convex Auth.</p>
<p>Profile management can be added here in a later phase.</p>
</CardContent>
</Card>
<Card>
<CardHeader>
<CardTitle className="text-base">API Keys</CardTitle>
</CardHeader>
<CardContent className="space-y-3 text-sm text-muted-foreground">
<div className="space-y-1">
<p className="font-medium text-foreground">OpenAI</p>
<p>Set `OPENAI_API_KEY` in your `.env` file.</p>
</div>
<div className="space-y-1">
<p className="font-medium text-foreground">Serper (optional)</p>
<p>Set `SERPER_API_KEY` in your `.env` file for more reliable search.</p>
</div>
<Badge variant="outline">Reload server after changes</Badge>
</CardContent>
</Card>
</div>
<Card>
<CardHeader>
<CardTitle className="text-base">Billing</CardTitle>
</CardHeader>
<CardContent className="text-sm text-muted-foreground">
Billing is not configured yet. Add Stripe or another provider when ready.
</CardContent>
</Card>
</div>
)
}