6
7- `index.ts` - Main entry point for the application
8- `database/` - Database schema and queries
9- `routes/` - API and static file routes
10
1import { Hono } from "https://esm.sh/hono@3.11.7";
2import { runMigrations } from "./database/migrations.ts";
3import api from "./routes/api.ts";
4import static_routes from "./routes/static.ts";
12});
13
14// Initialize the database
15app.use("*", async (c, next) => {
16 try {
19 await runMigrations();
20 globalThis.dbInitialized = true;
21 console.log("Database initialized successfully");
22 }
23 return await next();
24 } catch (error) {
25 console.error("Database initialization error:", error);
26 return c.text("Database initialization failed", 500);
27 }
28});
6 getRandomVocabulary,
7 updateProgress
8} from "../database/queries.ts";
9
10const api = new Hono();
1# Database Structure
2
3This directory contains the database schema and query functions for the French Learning App.
4
5## Tables
11## Files
12
13- `migrations.ts` - Database schema creation and initial data seeding
14- `queries.ts` - Functions for interacting with the database
15
16## Usage
17
18The database is automatically initialized when the application starts. The initial data includes common French phrases organized by category.
51}
52
53// Seed the database with initial categories and vocabulary
54async function seedInitialData() {
55 // Check if we already have categories
12## Project Structure
13
14- `/backend` - API endpoints and database operations
15- `/frontend` - User interface and client-side code
16- `/shared` - Shared types and utilities
1import { Hono } from "https://esm.sh/hono@3.11.7";
2import { cors } from "https://esm.sh/hono@3.11.7/middleware";
3import { runMigrations } from "./database/migrations.ts";
4import authRoutes from "./routes/auth.ts";
5import productRoutes from "./routes/products.ts";
25}));
26
27// Run database migrations
28// Comment this out after first run for better performance
29app.use("*", async (c, next) => {
1import { Hono } from "https://esm.sh/hono@3.11.7";
2import { getOrderById } from "../database/queries.ts";
3import { processPayment, getPaymentMethods } from "../services/payment.ts";
4import { authMiddleware } from "../middleware/auth.ts";
7 getProductById,
8 clearCart
9} from "../database/queries.ts";
10import { authMiddleware } from "../middleware/auth.ts";
11import {
6 removeCartItem,
7 getProductById
8} from "../database/queries.ts";
9import { authMiddleware } from "../middleware/auth.ts";
10import {