-
Notifications
You must be signed in to change notification settings - Fork 2
Project Structure
Matthew Smith edited this page Dec 3, 2025
·
9 revisions
StoryForge/
│
├── .cursor/
│ └── rules
│
├── convex/
│ │
│ ├── _generated/
│ │ ├── api.d.ts
│ │ ├── api.js
│ │ ├── dataModel.d.ts
│ │ ├── server.d.ts
│ │ └── server.js
│ │
│ ├── queries/
│ │ ├── stories.ts
│ │ └── visualization.ts
│ │
│ ├── ai.ts
│ ├── auth.config.ts
│ ├── debug.ts
│ ├── image.ts
│ ├── myFunctions.ts
│ ├── README.md
│ ├── schema.ts
│ ├── suggestions.ts
│ ├── tsconfig.json
│ └── ui.ts
│
├── node_modules/
│
├── public/
│
├── src/
│ │
│ ├── components/
│ │ │
│ │ ├── ThemeToggle.tsx
│ │ └── ui/
│ │ │
│ │ ├── story/
│ │ │ ├── AIAssistant.tsx
│ │ │ ├── ImageUpload.tsx
│ │ │ ├── index.ts
│ │ │ ├── NewStoryCard.tsx
│ │ │ ├── SavedSuggestionsViewer.tsx
│ │ │ ├── SessionTile.tsx
│ │ │ ├── SessionView.tsx
│ │ │ ├── StoryDialog.tsx
│ │ │ ├── StoryDialogToolTip.tsx
│ │ │ ├── StoryEditor.tsx
│ │ │ ├── StoryGraphViewer.tsx
│ │ │ └── StoryRow.tsx
│ │ │
│ │ ├── button.tsx
│ │ ├── card.tsx
│ │ ├── dialog.tsx
│ │ ├── input.tsx
│ │ ├── scroll-area.tsx
│ │ ├── storyplay.tsx
│ │ ├── textarea.tsx
│ │ └── tooltip.tsx
│ │
│ ├── lib/
│ │ └── utils.ts
│ ├── App.tsx
│ ├── ConvexProviderWithAuthKit.tsx
│ ├── ErrorBoundary.tsx
│ ├── index.css
│ ├── main.tsx
│ └── vite-env.d.ts
│
├── .env.local
├── .env.local.example
├── .gitignore
├── .prettierignore
├── components.json
├── eslint.config.js
├── index.html
├── LICENSE
├── package-lock.json
├── package.json
├── prettier.config.mjs
├── README.md
├── tailwind.config.js
├── tsconfig.app.json
├── tsconfig.json
├── tsconfig.node.json
└── vite.config.ts
Static assets served directly (images, fonts, etc.)
NPM package dependencies (auto-generated)
Backend logic and database schema powered by Convex. Contains serverless functions, database queries, and authentication configuration.
-
_generated/- Auto-generated API types and definitions -
queries/- Database query functions for stories and visualizations -
ai.ts- Backend integration with AI services for generating or enhancing story content -
auth.config.ts- Authentication and authorization setup -
debug.ts- Utilities for debugging Convex functions and server behavior -
image.ts- Backend logic for image storage, retrieval, and processing -
myFunctions.ts- Custom backend functions -
schema.ts- Database schema and table definitions -
suggestions.ts- Database storage of AI-powered story suggestions and content generation -
ui.ts- UI-related backend logic -
README.md- Backend documentation and development guidelines -
tsconfig.json- TypeScript configuration specific to Convex backend
Frontend React application source code built with TypeScript and Vite.
-
components/ui/- Reusable UI components library -
components/ui/story/- Story-specific React components (editor, viewer, cards) -
components/ThemeToggle.tsx- Theme switcher for light/dark mode -
lib/- Utility functions, helpers, and shared logic -
App.tsx- Main application component -
ConvexProviderWithAuthKit.tsx- Connects frontend authentication with Convex backend -
ErrorBoundary.tsx- Global error handler for React rendering issues -
index.css- Global styles and Tailwind CSS imports -
main.tsx- Application entry point -
vite-env.d.ts- TypeScript definitions for Vite environment variables
Frontend React application UI Components source code
-
story/- Story-specific React components (editor, viewer, cards) -
button.tsx- Reusable button component with variants and sizes -
card.tsx- Card container component for content organization -
dialog.tsx- Modal dialog component for overlays and popups -
input.tsx- Text input field component with validation support -
scroll-area.tsx- Scrollable container with custom scrollbar styling -
storyplay.tsx- Story playback and interactive reading interface -
textarea.tsx- Multi-line text input component with auto-resize -
tooltip.tsx- Contextual tooltip component for hints and information
Frontend React application UI Story Components source code
-
AIAssistant.tsx- AI-powered writing assistant interface with OpenAI integration -
ImageUpload.tsx- Image upload and management component for story nodes -
index.ts- Barrel export file for centralized story component imports -
NewStoryCard.tsx- Interactive card for creating new story projects -
SavedSuggestionsViewer.tsx- Component for viewing and managing saved AI suggestions -
SessionTile.tsx- Compact tile displaying story session metadata and preview -
SessionView.tsx- Full-page view for story editing sessions -
StoryDialog.tsx- Modal dialog for editing story nodes and choices -
StoryDialogToolTip.tsx- Specialized tooltip for story dialog interactions -
StoryEditor.tsx- Main story editing interface with node management -
StoryGraphViewer.tsx- Interactive graph visualization of story structure using Mermaid.js -
StoryRow.tsx- List row component displaying story details and actions
| File | Purpose |
|---|---|
| vite.config.ts | Vite build tool configuration |
| tsconfig.json | TypeScript compiler options |
| tsconfig.app.json, tsconfig.node.json | Scoped TypeScript configurations for frontend and Node/Convex code |
| package.json | Project dependencies and scripts |
| eslint.config.js | Code linting rules |
| prettier.config.mjs | Code formatting rules |
| components.json | shadcn/ui components configuration |
| .env.local | Environment variables (not in version control) |
| .env.local.example | Example of environment variable structure |