A simple notes collection app built with Val Town, featuring categorized note management with archive functionality.
├── backend/
│ ├── database/
│ │ ├── migrations.ts # Database schema setup
│ │ └── queries.ts # Database operations
│ ├── routes/
│ │ └── notes.ts # Notes API endpoints
│ └── index.ts # Main server entry point
├── frontend/
│ ├── components/
│ │ ├── App.tsx # Main application component
│ │ ├── NoteCard.tsx # Individual note display
│ │ ├── NoteForm.tsx # Note creation/editing form
│ │ └── FilterBar.tsx # Filtering and grouping controls
│ ├── index.html # HTML template with meta tags
│ └── index.tsx # React entry point
├── shared/
│ ├── config.ts # Centralized configuration
│ └── types.ts # TypeScript type definitions
└── README.md
All app configuration is centralized in /shared/config.ts:
GET /api/notes - Get all notes (with optional filters)POST /api/notes - Create a new notePUT /api/notes/:id - Update an existing notePATCH /api/notes/:id/archive - Archive a notePATCH /api/notes/:id/unarchive - Unarchive a noteNotes are stored in SQLite with the following structure:
CREATE TABLE summer_notes_v1 (
id INTEGER PRIMARY KEY AUTOINCREMENT,
title TEXT NOT NULL,
content TEXT NOT NULL,
category TEXT NOT NULL,
group_name TEXT NOT NULL,
color TEXT NOT NULL,
archived BOOLEAN DEFAULT FALSE,
created_at DATETIME DEFAULT CURRENT_TIMESTAMP,
updated_at DATETIME DEFAULT CURRENT_TIMESTAMP
)
The app includes comprehensive meta tags for:
Each note card features a macOS terminal-inspired design with:
The application is deployed and ready to use. All notes are stored persistently in SQLite and the interface is fully responsive for both desktop and mobile use.