34
35/**
36 * Store a chat message in the database
37 */
38export async function storeChatMessage(
130 }
131
132 console.log(`Weather forecast updated in the database.`);
133 return summary;
134}
125 }
126
127 console.log(`Calendar events imported into the database.`);
128 return events;
129 } catch (error) {
8
9/**
10 * Retrieves previously generated fun facts from the memories database
11 * @returns Array of previous fun facts
12 */
47
48/**
49 * Inserts a fun fact into the memories database
50 * @param date Date for the fun fact in ISO format
51 * @param factText The fun fact text
208```
209โโโ backend/
210โ โโโ database/
211โ โ โโโ migrations.ts # Schema definitions
212โ โ โโโ queries.ts # DB query functions
270- Handle API calls properly with proper error catching
271
272### Database Patterns
273- Run migrations on startup or comment out for performance
274- Change table names when modifying schemas rather than altering
5const PROMPTS_TABLE = 'prompt_requests_v1';
6
7// Initialize database tables
8export async function initDatabase() {
9 try {
10 await sqlite.execute(`
20 )
21 `);
22 console.log("Database initialized");
23 } catch (error) {
24 console.error("Database initialization error:", error);
25 throw error;
26 }
101}
102
103// Helper function to map a database row to a PromptRequest object
104function mapRowToPromptRequest(row: any[], columns: string[]): PromptRequest {
105 const result: Record<string, any> = {};
23}
24
25// For database operations
26export interface SQLQueryResult {
27 columns: string[];
102. **Email Submission** - Users can email their prompt details, which are automatically parsed using Gemini AI.
11
12All submissions are stored in a SQLite database and can be accessed through an admin panel where administrators can:
13
14- View all prompt requests
20- `backend/` - Server-side code
21 - `index.ts` - Main API server (Hono)
22 - `database.ts` - SQLite database operations
23 - `email-service.ts` - Email processing and sending
24 - `email-handler.ts` - Email endpoint handler
43 - View all submitted requests
44 - Create and send improved prompts to users
45- **SQLite Database** for data storage
46- **Email Notifications**
47 - To admins when new requests arrive
62- Val Town Platform
63- Hono (API framework)
64- SQLite (database)
65- OpenAI (for email processing)
66- TailwindCSS (styling)
10import exampleCallout from "./routes/exampleCallout.ts";
11import exampleChildPages from "./routes/exampleChildPages.ts";
12import exampleDatabasePage from "./routes/exampleDatabasePage.ts";
13import exampleDatabasePages from "./routes/exampleDatabasePages.ts";
14import home from "./routes/home.ts";
15import testRoutes from "./routes/testRoutes.ts";
27// Mount all route modules
28app.route("/", home);
29app.route("/", exampleDatabasePages);
30app.route("/", exampleDatabasePage);
31app.route("/", exampleChildPages);
32app.route("/", exampleCallout);
5## Route Files
6
7- `exampleDatabasePages.ts` - Handles `/example/database/pages` endpoint for resetting database pages
8- `exampleDatabasePage.ts` - Handles `/example/database/page` endpoint for updating a single database page
9- `exampleChildPages.ts` - Handles `/example/child_pages` endpoint for managing child pages
10- `exampleCallout.ts` - Handles `/example/callout` endpoint for updating callout blocks