322 lines
9.4 KiB
JSON
322 lines
9.4 KiB
JSON
{
|
|
"project": {
|
|
"name": "note-to-app",
|
|
"version": "0.1.0",
|
|
"description": "Voice recording app with AI-powered summarization and automatic app generation"
|
|
},
|
|
"state": {
|
|
"current_phase": "DESIGNING"
|
|
},
|
|
"entities": {
|
|
"data_models": [
|
|
{
|
|
"id": "model_user",
|
|
"name": "User",
|
|
"status": "PENDING",
|
|
"file_path": "prisma/schema.prisma",
|
|
"description": "Application user account with email/password authentication"
|
|
},
|
|
{
|
|
"id": "model_recording",
|
|
"name": "Recording",
|
|
"status": "PENDING",
|
|
"file_path": "prisma/schema.prisma",
|
|
"description": "Voice recording with transcript and summary"
|
|
},
|
|
{
|
|
"id": "model_generated_app",
|
|
"name": "GeneratedApp",
|
|
"status": "PENDING",
|
|
"file_path": "prisma/schema.prisma",
|
|
"description": "AI-generated application from recording content"
|
|
}
|
|
],
|
|
"api_endpoints": [
|
|
{
|
|
"id": "api_register_user",
|
|
"method": "POST",
|
|
"path": "/api/auth/register",
|
|
"status": "PENDING",
|
|
"file_path": "app/api/auth/register/route.ts",
|
|
"description": "Register a new user"
|
|
},
|
|
{
|
|
"id": "api_login_user",
|
|
"method": "POST",
|
|
"path": "/api/auth/login",
|
|
"status": "PENDING",
|
|
"file_path": "app/api/auth/login/route.ts",
|
|
"description": "Login user"
|
|
},
|
|
{
|
|
"id": "api_logout_user",
|
|
"method": "POST",
|
|
"path": "/api/auth/logout",
|
|
"status": "PENDING",
|
|
"file_path": "app/api/auth/logout/route.ts",
|
|
"description": "Logout user"
|
|
},
|
|
{
|
|
"id": "api_get_current_user",
|
|
"method": "GET",
|
|
"path": "/api/auth/me",
|
|
"status": "PENDING",
|
|
"file_path": "app/api/auth/me/route.ts",
|
|
"description": "Get current user"
|
|
},
|
|
{
|
|
"id": "api_list_recordings",
|
|
"method": "GET",
|
|
"path": "/api/recordings",
|
|
"status": "PENDING",
|
|
"file_path": "app/api/recordings/route.ts",
|
|
"description": "List user recordings"
|
|
},
|
|
{
|
|
"id": "api_create_recording",
|
|
"method": "POST",
|
|
"path": "/api/recordings",
|
|
"status": "PENDING",
|
|
"file_path": "app/api/recordings/route.ts",
|
|
"description": "Create new recording"
|
|
},
|
|
{
|
|
"id": "api_get_recording",
|
|
"method": "GET",
|
|
"path": "/api/recordings/[id]",
|
|
"status": "PENDING",
|
|
"file_path": "app/api/recordings/[id]/route.ts",
|
|
"description": "Get single recording"
|
|
},
|
|
{
|
|
"id": "api_delete_recording",
|
|
"method": "DELETE",
|
|
"path": "/api/recordings/[id]",
|
|
"status": "PENDING",
|
|
"file_path": "app/api/recordings/[id]/route.ts",
|
|
"description": "Delete recording"
|
|
},
|
|
{
|
|
"id": "api_transcribe_recording",
|
|
"method": "POST",
|
|
"path": "/api/recordings/[id]/transcribe",
|
|
"status": "PENDING",
|
|
"file_path": "app/api/recordings/[id]/transcribe/route.ts",
|
|
"description": "Transcribe recording"
|
|
},
|
|
{
|
|
"id": "api_summarize_recording",
|
|
"method": "POST",
|
|
"path": "/api/recordings/[id]/summarize",
|
|
"status": "PENDING",
|
|
"file_path": "app/api/recordings/[id]/summarize/route.ts",
|
|
"description": "Summarize recording"
|
|
},
|
|
{
|
|
"id": "api_list_apps",
|
|
"method": "GET",
|
|
"path": "/api/apps",
|
|
"status": "PENDING",
|
|
"file_path": "app/api/apps/route.ts",
|
|
"description": "List generated apps"
|
|
},
|
|
{
|
|
"id": "api_generate_app",
|
|
"method": "POST",
|
|
"path": "/api/apps/generate",
|
|
"status": "PENDING",
|
|
"file_path": "app/api/apps/generate/route.ts",
|
|
"description": "Generate app from recording"
|
|
},
|
|
{
|
|
"id": "api_get_app",
|
|
"method": "GET",
|
|
"path": "/api/apps/[id]",
|
|
"status": "PENDING",
|
|
"file_path": "app/api/apps/[id]/route.ts",
|
|
"description": "Get single generated app"
|
|
},
|
|
{
|
|
"id": "api_delete_app",
|
|
"method": "DELETE",
|
|
"path": "/api/apps/[id]",
|
|
"status": "PENDING",
|
|
"file_path": "app/api/apps/[id]/route.ts",
|
|
"description": "Delete generated app"
|
|
}
|
|
],
|
|
"components": [
|
|
{
|
|
"id": "component_header",
|
|
"name": "Header",
|
|
"status": "PENDING",
|
|
"file_path": "app/components/Header.tsx",
|
|
"description": "Navigation header"
|
|
},
|
|
{
|
|
"id": "component_sidebar",
|
|
"name": "Sidebar",
|
|
"status": "PENDING",
|
|
"file_path": "app/components/Sidebar.tsx",
|
|
"description": "Navigation sidebar"
|
|
},
|
|
{
|
|
"id": "component_hero",
|
|
"name": "Hero",
|
|
"status": "PENDING",
|
|
"file_path": "app/components/Hero.tsx",
|
|
"description": "Hero section for landing page"
|
|
},
|
|
{
|
|
"id": "component_features",
|
|
"name": "Features",
|
|
"status": "PENDING",
|
|
"file_path": "app/components/Features.tsx",
|
|
"description": "Features section for landing page"
|
|
},
|
|
{
|
|
"id": "component_login_form",
|
|
"name": "LoginForm",
|
|
"status": "PENDING",
|
|
"file_path": "app/components/LoginForm.tsx",
|
|
"description": "Email/password login form"
|
|
},
|
|
{
|
|
"id": "component_register_form",
|
|
"name": "RegisterForm",
|
|
"status": "PENDING",
|
|
"file_path": "app/components/RegisterForm.tsx",
|
|
"description": "Registration form"
|
|
},
|
|
{
|
|
"id": "component_record_button",
|
|
"name": "RecordButton",
|
|
"status": "PENDING",
|
|
"file_path": "app/components/RecordButton.tsx",
|
|
"description": "Main record/stop button"
|
|
},
|
|
{
|
|
"id": "component_wake_word_indicator",
|
|
"name": "WakeWordIndicator",
|
|
"status": "PENDING",
|
|
"file_path": "app/components/WakeWordIndicator.tsx",
|
|
"description": "Shows wake word listening status"
|
|
},
|
|
{
|
|
"id": "component_recording_list",
|
|
"name": "RecordingList",
|
|
"status": "PENDING",
|
|
"file_path": "app/components/RecordingList.tsx",
|
|
"description": "List of recordings"
|
|
},
|
|
{
|
|
"id": "component_recording_card",
|
|
"name": "RecordingCard",
|
|
"status": "PENDING",
|
|
"file_path": "app/components/RecordingCard.tsx",
|
|
"description": "Single recording preview"
|
|
},
|
|
{
|
|
"id": "component_audio_player",
|
|
"name": "AudioPlayer",
|
|
"status": "PENDING",
|
|
"file_path": "app/components/AudioPlayer.tsx",
|
|
"description": "Audio playback controls"
|
|
},
|
|
{
|
|
"id": "component_transcript_viewer",
|
|
"name": "TranscriptViewer",
|
|
"status": "PENDING",
|
|
"file_path": "app/components/TranscriptViewer.tsx",
|
|
"description": "Show live/final transcript"
|
|
},
|
|
{
|
|
"id": "component_summary_display",
|
|
"name": "SummaryDisplay",
|
|
"status": "PENDING",
|
|
"file_path": "app/components/SummaryDisplay.tsx",
|
|
"description": "Show AI summary"
|
|
},
|
|
{
|
|
"id": "component_app_gallery",
|
|
"name": "AppGallery",
|
|
"status": "PENDING",
|
|
"file_path": "app/components/AppGallery.tsx",
|
|
"description": "Grid of generated apps"
|
|
},
|
|
{
|
|
"id": "component_app_card",
|
|
"name": "AppCard",
|
|
"status": "PENDING",
|
|
"file_path": "app/components/AppCard.tsx",
|
|
"description": "Single app preview card"
|
|
},
|
|
{
|
|
"id": "component_app_iframe_viewer",
|
|
"name": "AppIframeViewer",
|
|
"status": "PENDING",
|
|
"file_path": "app/components/AppIframeViewer.tsx",
|
|
"description": "Iframe to display generated app"
|
|
}
|
|
],
|
|
"pages": [
|
|
{
|
|
"id": "page_home",
|
|
"name": "Home",
|
|
"status": "PENDING",
|
|
"file_path": "app/page.tsx",
|
|
"description": "Landing page for non-authenticated users"
|
|
},
|
|
{
|
|
"id": "page_login",
|
|
"name": "Login",
|
|
"status": "PENDING",
|
|
"file_path": "app/login/page.tsx",
|
|
"description": "Login page"
|
|
},
|
|
{
|
|
"id": "page_register",
|
|
"name": "Register",
|
|
"status": "PENDING",
|
|
"file_path": "app/register/page.tsx",
|
|
"description": "Registration page"
|
|
},
|
|
{
|
|
"id": "page_dashboard",
|
|
"name": "Dashboard",
|
|
"status": "PENDING",
|
|
"file_path": "app/dashboard/page.tsx",
|
|
"description": "Main dashboard with recording controls"
|
|
},
|
|
{
|
|
"id": "page_recordings",
|
|
"name": "Recordings",
|
|
"status": "PENDING",
|
|
"file_path": "app/recordings/page.tsx",
|
|
"description": "Recordings list"
|
|
},
|
|
{
|
|
"id": "page_recording_detail",
|
|
"name": "Recording Detail",
|
|
"status": "PENDING",
|
|
"file_path": "app/recordings/[id]/page.tsx",
|
|
"description": "Recording detail with transcript/summary"
|
|
},
|
|
{
|
|
"id": "page_apps",
|
|
"name": "Generated Apps",
|
|
"status": "PENDING",
|
|
"file_path": "app/apps/page.tsx",
|
|
"description": "Generated apps gallery"
|
|
},
|
|
{
|
|
"id": "page_app_detail",
|
|
"name": "App Preview",
|
|
"status": "PENDING",
|
|
"file_path": "app/apps/[id]/page.tsx",
|
|
"description": "App preview in iframe"
|
|
}
|
|
]
|
|
}
|
|
}
|