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
1import { serveFile } from "https://esm.town/v/std/utils/index.ts";
2import { generateCode } from "./backend/generate-code.ts";
3import { createTables } from "./database/migrations.ts";
4import { createProject, getCode, getNextVersionNumber, insertVersion } from "./database/queries.ts";
5
6await createTables();
22- Backend: TypeScript with Hono framework
23- AI Vision: Llama 4 Maverick via Groq API
24- Database: SQLite for data storage
25- Frontend: HTML, CSS (Tailwind), and JavaScript with HTMX
26
29```
30โโโ backend/
31โ โโโ database/
32โ โ โโโ schema.ts # Database schema
33โ โ โโโ queries.ts # Database queries
34โ โโโ services/
35โ โ โโโ vision.ts # Groq API integration
8 getFoodEntries,
9 getStats,
10 setupDatabase
11} from "./backend/database/queries.ts";
12
13// Initialize the app
28app.use("*", cors());
29
30// Initialize database on startup
31app.use("*", async (c, next) => {
32 await setupDatabase();
33 await next();
34});
60 const analysis = await analyzeImage(imageBase64);
61
62 // Store the analysis in the database
63 const userId = formData.get("userId") || "anonymous";
64 const entry = await createFoodEntry({
10
11- `FoodAnalysisResult`: The result of analyzing a food image
12- `FoodEntryData`: Data structure for a food entry in the database
13- `StatsData`: Data structure for calorie statistics
303. The AI analyzes the image and returns information about the food
314. The results are displayed to the user
325. The entry is saved to the database for future reference
336. Statistics and history are updated automatically
5## Structure
6
7- `database/`: Database schema and queries
8 - `schema.ts`: Defines the database tables and types
9 - `queries.ts`: Contains functions for interacting with the database
10- `services/`: External service integrations
11 - `vision.ts`: Integration with Groq API for Llama 4 Maverick vision
9} from "./schema.ts";
10
11// Initialize the database
12export async function setupDatabase() {
13 // Create tables if they don't exist
14 await sqlite.execute(CREATE_USERS_TABLE);