project-standalo-note-to-app/project_manifest.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"
}
]
}
}